!
! Absolute value test vectors:
!
2A  ALL  1  0  OK  1
2A  ALL  -1  0  OK  1
2A  ALL  Ed1  0  OK  Ed1
2A  ALL  -Ed1  0  OK  Ed1
2A  ALL  0i1  0  OK  0i1
2A  ALL  -0i1  0  OK  0i1
2A  ALL  Hm1  0  OK  Hm1
2A  ALL  -Hm1  0  OK  Hm1
2A  ALL  Hd1  0  OK  Hd1
2A  ALL  -Hd1  0  OK  Hd1
2A  ALL  H  0  OK  H
2A  ALL  -H  0  OK  H
2A  ALL  0  0  OK  0
2A  ALL  -0  0  OK  0
! NaNs -- FPTEST checks that results
! are NaNs with no exceptions.
2A  ALL  Q  0  OK  Q
2A  ALL  -Q  0  OK  Q
2A  ALL  S  0  OK  S
2A  ALL  -S  0  OK  S
! First some easy integer cases.
2+  ALL  1  1  OK  2
2+  ALL  1  2  OK  3
2+  ALL  2  1  OK  3
2+  ALL  2  2  OK  4
2+  =0>  2  -2  OK  0
2+  <  2  -2  OK  -0
2+  =0>  5  -5  OK  0
2+  <  5  -5  OK  -0
2+  ALL  1  7  OK  8
2+  ALL  5  -1  OK  4
2+  ALL  2  -5  OK  -3
2+  ALL  5  -0  OK  5
2+  ALL  5  +0  OK  5
! Infinity vs Infinity.
2+  ALL  H  H  OK  H  ok - affine sum
2+  ALL  -H  -H  OK  -H
2+  ALL  -H  H  i  Q  different signs
2+  ALL  H  -H  i  Q
! Infinity vs huge.
2+  ALL  H  Hm1  OK  H
2+  ALL  H  -Hm1  OK  H
2+  ALL  -H  Hm1  OK  -H
2+  ALL  -H  -Hm1  OK  -H
2+  ALL  Hm1  H  OK  H
2+  ALL  Hm1  -H  OK  -H
2+  ALL  -Hm1  H  OK  H
2+  ALL  -Hm1  -H  OK  -H
! Infinity vs 0.
2+  ALL  H  0  OK  H
2+  ALL  H  -0  OK  H
2+  ALL  -H  0  OK  -H
2+  ALL  -H  -0  OK  -H
2+  ALL  0  H  OK  H
2+  ALL  -0  H  OK  H
2+  ALL  0  -H  OK  -H
2+  ALL  -0  -H  OK  -H
! Infinity vs denormalized.
2+  ALL  H  Ed1  OK  H
2+  ALL  -H  Ed1  OK  -H
2+  ALL  H  -Ed1  OK  H
2+  ALL  -H  -Ed1  OK  -H
2+  ALL  0i3  H  OK  H
2+  ALL  0i3  -H  OK  -H
2+  ALL  -0i3  H  OK  H
2+  ALL  -0i3  -H  OK  -H
! Zero vs finite -- watch that sign of 0
! is meaningless.
2+  ALL  0  Hm1  OK  Hm1
2+  ALL  -0  Hm1  OK  Hm1
2+  ALL  -Hm1  0  OK  -Hm1
2+  ALL  -Hm1  -0  OK  -Hm1
2+  ALL  1  -0  OK  1
2+  ALL  -1  -0  OK  -1
2+  ALL  0  1  OK  1
2+  ALL  -0  -1  OK  -1
! Zero vs denormalized -- underflows.
2+  ALL  0  Ed1  OK  Ed1
2+  ALL  -0  Ed1  OK  Ed1
2+  ALL  0  -Ed1  OK  -Ed1
2+  ALL  -0  -Ed1  OK  -Ed1
2+  ALL  0i3  0  OK  0i3
2+  ALL  0i3  -0  OK  0i3
2+  ALL  -0i3  0  OK  -0i3
2+  ALL  -0i3  -0  OK  -0i3
! Zero vs tiny -- just in case.
2+  ALL  -0  -E  OK  -E
2+  ALL  E  0  OK  E
2+  ALL  0  -E  OK  -E
2+  ALL  -E  0  OK  -E
! Zero vs Zero -- watch signs and
! rounding modes.
2+  =0>  0  -0  OK  0
2+  =0>  -0  0  OK  0
2+  <  0  -0  OK  -0
2+  <  -0  0  OK  -0
2+  ALL  0  0  OK  0
2+  ALL  -0  -0  OK  -0
! Double a number -- may overflow so
! watch rounding mode.
2+  =>  Hm1  Hm1  xo  H
2+  0<  Hm1  Hm1  xo  Hd1
2+  =<  -Hm1  -Hm1  xo  -H
2+  0>  -Hm1  -Hm1  xo  -Hd1
2+  ALL  Hm1d2  Hm1d2  OK  Hd2
2+  ALL  -Hm1d2  -Hm1d2  OK  -Hd2
2+  =>  Hd2  Hd2  xo  H
2+  0<  Hd2  Hd2  xo  Hd1
2+  =<  -Hd2  -Hd2  xo  -H
2+  0>  -Hd2  -Hd2  xo  -Hd1
! Double an innocent number.
2+  ALL  1  1  OK  2
2+  ALL  3  3  OK  6
2+  ALL  E  E  OK  Ep1
2+  ALL  Hm2  Hm2  OK  Hm1
! Double a tiny number -- may underflow.
2+  ALL  Ed1  Ed1  OK  Ep1d2
2+  ALL  -Ed1  -Ed1  OK  -Ep1d2
2+  ALL  0i4  0i4  OK  0i8
2+  ALL  -0i4  -0i4  OK  -0i8
2+  ALL  0i1  0i1  OK  0i2
2+  ALL  -0i1  -0i1  OK  -0i2
! Cancellation to 0 -- to plus 0.
2+  =0>  Hm1  -Hm1  OK  0
2+  =0>  -Hm1d2  Hm1d2  OK  0
2+  =0>  1  -1  OK  0
2+  =0>  -3  3  OK  0
2+  =0>  E  -E  OK  0
2+  =0>  -E  E  OK  0
2+  =0>  Ed4  -Ed4  OK  0
2+  =0>  -Ed1  Ed1  OK  0  no underflow
2+  =0>  0i1  -0i1  OK  0
2+  =0>  -0i1  0i1  OK  0
2+  =0>  Hd1  -Hd1 OK  0
! Cancellation to 0 -- to minus 0.
2+  <  Hm1  -Hm1  OK  -0
2+  <  -Hm1d2  Hm1d2  OK  -0
2+  <  1  -1  OK  -0
2+  <  -3  3  OK  -0
2+  <  E  -E  OK  -0
2+  <  -E  E  OK  -0
2+  <  Ed4  -Ed4  OK  -0
2+  <  -Ed1  Ed1  OK  -0  no underflow
2+  <  0i1  -0i1  OK  -0
2+  <  -0i1  0i1  OK  -0
2+  <  Hd1  -Hd1 OK  -0
! Cancel forcing normalization of LSB
! (no rounding errors).  Difference is in
! last place of larger number.
! Medium numbers...
2+  ALL  1i1  -1  OK  1u1
2+  ALL  -1i1  1  OK  -1u1
2+  ALL  1i1  -1i2  OK  -1u1
2+  ALL  -1i1  1i2  OK  1u1
2+  ALL  2  -2i1  OK  -2u1
2+  ALL  -2  2i1  OK  2u1
2+  ALL  2i4  -2i3  OK  2u1
2+  ALL  -2i4  2i3  OK  -2u1
2+  ALL  4d1  -4d2  OK  3u1
2+  ALL  -4d1  4d2  OK  -3u1
2+  ALL  2d4  -2d3  OK  -1u1
2+  ALL  -2d4  2d3  OK  1u1
! Huge numbers...
2+  ALL  Hm1i1  -Hm1  OK  Hm1u1
2+  ALL  -Hm1i1  Hm1  OK  -Hm1u1
2+  ALL  Hm1i1  -Hm1i2  OK  -Hm1u1
2+  ALL  -Hm1i1  Hm1i2  OK  Hm1u1
2+  ALL  Hm2  -Hm2i1  OK  -Hm2u1
2+  ALL  -Hm2  Hm2i1  OK  Hm2u1
2+  ALL  Hm2i4  -Hm2i3  OK  Hm2u1
2+  ALL  -Hm2i4  Hm2i3  OK  -Hm2u1
2+  ALL  Hm2d1  -Hm2d2  OK  Hm3u1
2+  ALL  -Hm2d1  Hm2d2  OK  -Hm3u1
2+  ALL  -Hd2  Hd1  OK  Hd1u1
2+  ALL  Hd2  -Hd1  OK  -Hd1u1
! Tiny numbers...
2+  ALL  -Ei1  E  OK  -Eu1
2+  ALL  Ei1  -E  OK  Eu1
2+  ALL  -Ed1  E  OK  Eu1
2+  ALL  Ed1  -E  OK  -Eu1
2+  ALL  Ei1  -Ei2  OK  -Eu1
2+  ALL  -Ei1  Ei2  OK  Eu1
2+  ALL  Ed1  -Ed2  OK  Eu1
2+  ALL  -Ed1  Ed2  OK  -Eu1
2+  ALL  Ed3  -Ed2  OK  -Eu1
2+  ALL  -Ed3  Ed2  OK  Eu1
2+  ALL  0i2  -0i1  OK  Eu1
2+  ALL  -0i2  0i1  OK  -Eu1
2+  ALL  0i3  -0i2  OK  Eu1
2+  ALL  -0i3  0i2  OK  -Eu1
! Normalize from round bit -- set up
! tests so that operands have
! exponents differing by 1 unit.
! Medium numbers...
2+  ALL  2  -2d1  OK  1u1
2+  ALL  -2  2d1  OK  -1u1
2+  ALL  -2d1  2  OK  1u1
2+  ALL  2d1  -2  OK  -1u1
2+  ALL  4i1  -4d1  OK  3u3
2+  ALL  -4i1  4d1  OK  -3u3
2+  ALL  4d1  -4i2  OK  -3u5
2+  ALL  -4d1  4i2  OK  3u5
2+  ALL  2i1  -1i1  OK  1i1
2+  ALL  -2i1  1i1  OK  -1i1
2+  ALL  2i2  -1i1  OK  1i3
2+  ALL  -2i2  1i1  OK  -1i3
2+  ALL  2i2  -1i3  OK  1i1
2+  ALL  -2i2  1i3  OK  -1i1
! Huge numbers...
2+  ALL  Hm2  -Hm2d1  OK  Hm3u1
2+  ALL  -Hm2  Hm2d1  OK  -Hm3u1
2+  ALL  -Hm1d1  Hm1  OK  Hm2u1
2+  ALL  Hm1d1  -Hm1  OK  -Hm2u1
2+  ALL  Hm4i1  -Hm4d1  OK  Hm5u3
2+  ALL  -Hm4i1  Hm4d1  OK  -Hm5u3
2+  ALL  Hm2d1  -Hm2i2  OK  -Hm3u5
2+  ALL  -Hm2d1  Hm2i2  OK  Hm3u5
2+  ALL  Hm2i1  -Hm1i1  OK  -Hm2i1
2+  ALL  -Hm2i1  Hm1i1  OK  Hm2i1
2+  ALL  Hm1i2  -Hm2i1  OK  Hm2i3
2+  ALL  -Hm1i2  Hm2i1  OK  -Hm2i3
2+  ALL  Hm2i2  -Hm3i3  OK  Hm3i1
2+  ALL  -Hm2i2  Hm3i3  OK  -Hm3i1
! Tiny numbers...
2+  ALL  Ep1  -Ep1d1  OK  Eu1
2+  ALL  -Ep1  Ep1d1  OK  -Eu1
2+  ALL  -Ep1d1  Ep1  OK  Eu1
2+  ALL  Ep1d1  -Ep1  OK  -Eu1
2+  ALL  Ep1i1  -Ep1d1  OK  Eu3
2+  ALL  -Ep1i1  Ep1d1  OK  -Eu3
2+  ALL  Ep2  -Ep2d1  OK  Eu2
2+  ALL  -Ep2  Ep2d1  OK  -Eu2
2+  ALL  -Ep2d1  Ep2  OK  Eu2
2+  ALL  Ep2d1  -Ep2  OK  -Eu2
2+  ALL  Ep2i1  -Ep2d1  OK  Eu6
2+  ALL  -Ep2i1  Ep2d1  OK  -Eu6
2+  ALL  Ep1d1  -Ep1i2  OK  -Eu5
2+  ALL  -Ep1d1  Ep1i2  OK  Eu5
2+  ALL  Ep1d1  -Ep1i4  OK  -Eu9
2+  ALL  -Ep1d1  Ep1i4  OK  Eu9
2+  ALL  Ep1i1  -Ei1  OK  Ei1
2+  ALL  -Ep1i1  Ei1  OK  -Ei1
2+  ALL  Ep1i2  -Ei1  OK  Ei3
2+  ALL  -Ep1i2  Ei1  OK  -Ei3
2+  ALL  Ep2i2  -Ep1i3  OK  Ep1i1
2+  ALL  -Ep2i2  Ep1i3  OK  -Ep1i1
! Add magnitude:
! cases where one operand is off in sticky --
! rounding perhaps to an overflow.
! Huge vs medium.
2+  =0<  Hm1  1  x  Hm1
2+  >  Hm1  1  x  Hm1i1
2+  =0>  -Hm1  -1  x  -Hm1
2+  <  -Hm1  -1  x  -Hm1i1
2+  =0<  Hm1d1  1  x  Hm1d1
2+  >  Hm1d1  1  x  Hm1
2+  =0>  -Hm1d1  -1  x  -Hm1d1
2+  <  -Hm1d1  -1  x  -Hm1
2+  =0<  Hd1  1  x  Hd1
2+  >  Hd1  1  xo  H  signal overflow
2+  =0>  -Hd1  -1  x  -Hd1
2+  <  -Hd1  -1  xo  -H
2+  =0<  Hd2  1  x  Hd2
2+  >  Hd2  1  x  Hd1
2+  =0>  -Hd2  -1  x  -Hd2
2+  <  -Hd2  -1  x  -Hd1
! Huge vs denormal.
2+  =0<  0i1  Hm1  x  Hm1
2+  >  0i1  Hm1  x  Hm1i1
2+  =0>  -0i1  -Hm1  x  -Hm1
2+  <  -0i1  -Hm1  x  -Hm1i1
2+  =0<  0i1  Hm1d1  x  Hm1d1
2+  >  0i1  Hm1d1  x  Hm1
2+  =0>  -0i1  -Hm1d1  x  -Hm1d1
2+  <  -0i1  -Hm1d1  x  -Hm1
2+  =0<  0i1  Hd1  x  Hd1
2+  >  0i1  Hd1  xo  H  signal overflow
2+  =0>  -0i1  -Hd1  x  -Hd1
2+  <  -0i1  -Hd1  xo  -H
2+  =0<  0i1  Hd2  x  Hd2
2+  >  0i1  Hd2  x  Hd1
2+  =0>  -0i1  -Hd2  x  -Hd2
2+  <  -0i1  -Hd2  x  -Hd1
! Medium vs denormal.
2+  =0<  0i1  1  x  1
2+  >  0i1  1  x  1i1
2+  =0>  -0i1  -1  x  -1
2+  <  -0i1  -1  x  -1i1
2+  =0<  0i1  1d1  x  1d1
2+  >  0i1  1d1  x  1
2+  =0>  -0i1  -1d1  x  -1d1
2+  <  -0i1  -1d1  x  -1
2+  =0<  0i1  2d1  x  2d1
2+  >  0i1  2d1  x  2
2+  =0>  -0i1  -2d1  x  -2d1
2+  <  -0i1  -2d1  x  -2
2+  =0<  0i1  2d2  x  2d2
2+  >  0i1  2d2  x  2d1
2+  =0>  -0i1  -2d2  x  -2d2
2+  <  -0i1  -2d2  x  -2d1
!
! Magnitude subtract when an operand is
! in the sticky bit.  The interesting cases
! will arise when directed rounding
! forces a nonzero cancellation.
! Huge and medium.
2+  =>  Hm1  -1  x  Hm1
2+  0<  Hm1  -1  x  Hm1d1
2+  =<  -Hm1  1  x  -Hm1
2+  0>  -Hm1  1  x  -Hm1d1
2+  =>  Hm1d1  -1  x  Hm1d1
2+  0<  Hm1d1  -1  x  Hm1d2
2+  =<  -Hm1d1  1  x  -Hm1d1
2+  0>  -Hm1d1  1  x  -Hm1d2
2+  =>  Hd1  -1  x  Hd1
2+  0<  Hd1  -1  x  Hd2
2+  =<  -Hd1  1  x  -Hd1
2+  0>  -Hd1  1  x  -Hd2
2+  =>  Hd2  -1  x  Hd2
2+  0<  Hd2  -1  x  Hd3
2+  =<  -Hd2  1  x  -Hd2
2+  0>  -Hd2  1  x  -Hd3
! Huge and tiny.
2+  =>  Hd1  -0i1  x  Hd1
2+  0<  Hd1  -0i1  x  Hd2
2+  =<  -Hd1  0i1  x  -Hd1
2+  0>  -Hd1  0i1  x  -Hd2
2+  =>  -0i3  Hm1  x  Hm1
2+  0<  -0i3  Hm1  x  Hm1d1
2+  =<  0i3  -Hm1  x  -Hm1
2+  0>  0i3  -Hm1  x  -Hm1d1
! Medium and tiny.
2+  =>  1d1  -0i1  x  1d1
2+  0<  1d1  -0i1  x  1d2
2+  =<  -2d1  0i1  x  -2d1
2+  0>  -2d1  0i1  x  -2d2
2+  =>  -0i3  3  x  3
2+  0<  -0i3  3  x  3d1
2+  =<  0i3  -5  x  -5
2+  0>  0i3  -5  x  -5d1
!
! Add magnitude with difference in LSB
! so, except for denorms, round bit 
! is crucial.  Half-way cases arise.
! Medium cases.
2+  =0<  1i1  1  x  2
2+  >  1i1  1  x  2i1
2+  =0>  -1i1  -1  x  -2
2+  <  -1i1  -1  x  -2i1
2+  =0>  -2  -2i1  x  -4
2+  <  -2  -2i1  x  -4i1
2+  =0<  2  2i1  x  4
2+  >  2  2i1  x  4i1
2+  =>  1  1i3  x  2i2
2+  0<  1  1i3  x  2i1
2+  =<  -1  -1i3  x  -2i2
2+  0>  -1  -1i3  x  -2i1
2+  =<  -2i1  -2i2  x  -4i2
2+  0>  -2i1  -2i2  x  -4i1
2+  =>  2i1  2i2  x  4i2
2+  0<  2i1  2i2  x  4i1
! Huge cases.
2+  =>  Hd2  Hd1  xo  H
2+  0<  Hd2  Hd1  xo  Hd1
2+  =<  -Hd2  -Hd1  xo  -H
2+  0>  -Hd2  -Hd1  xo  -Hd1
2+  =>  Hm1d1  Hm1  xo  H
2+  0<  Hm1d1  Hm1  x  Hd1
2+  =<  -Hm1d1  -Hm1  xo  -H
2+  0>  -Hm1d1  -Hm1  x  -Hd1
2+  =>  Hm1i1  Hm1  xo  H
2+  0<  Hm1i1  Hm1  xo  Hd1
2+  =<  -Hm1i1  -Hm1  xo  -H
2+  0>  -Hm1i1  -Hm1  xo  -Hd1
2+  =0<  Hm2i1  Hm2  x  Hm1
2+  >  Hm2i1  Hm2  x  Hm1i1
2+  =0>  -Hm2i1  -Hm2  x  -Hm1
2+  <  -Hm2i1  -Hm2  x  -Hm1i1
2+  =0<  Hm1d2  Hm1d1  x  Hd2
2+  >  Hm1d2  Hm1d1  x  Hd1
2+  =0>  -Hm1d2  -Hm1d1  x  -Hd2
2+  <  -Hm1d2  -Hm1d1  x  -Hd1
! Check rounding.
2+  >  2  1u1  x  2i1
2+  =0<  2  1u1  x  2
2+  =>  2i1  1u1  x  2i2
2+  0<  2i1  1u1  x  2i1
2+  =>  4d1  1u1  x  4
2+  0<  4d1  1u1  x  4d1
2+  >  4d1  1u1d1 x  4
2+  0=<  4d1  1u1d1 x  4d1
2+  =<  -4d1  -1u1  x  -4
2+  0>  -4d1  -1u1  x  -4d1
2+  <  -4d1  -1u1d1 x  -4
2+  0=>  -4d1  -1u1d1 x  -4d1
!NAN operands.
2+  ALL  Q  0  OK  Q
2+  ALL  Q  -0  OK  Q
2+  ALL  0  Q  OK  Q
2+  ALL  -0  Q  OK  Q
2+  ALL  Q  1  OK  Q
2+  ALL  Q  -1  OK  Q
2+  ALL  1  Q  OK  Q
2+  ALL  -1  Q  OK  Q
2+  ALL  Ed1  Q  OK  Q
2+  ALL  -Ed1 Q  OK  Q
2+  ALL  Q  Ed1  OK  Q
2+  ALL  Q  -Ed1 OK  Q
2+  ALL  Q  0i1  OK  Q
2+  ALL  Q  -0i1  OK  Q
2+  ALL  0i1  Q  OK  Q
2+  ALL  -0i1  Q  OK  Q
2+  ALL  Q  Hd1  OK  Q
2+  ALL  Q  -Hd1 OK  Q
2+  ALL  Hd1  Q  OK  Q
2+  ALL  -Hd1 Q  OK  Q
2+  ALL  Q  H  OK  Q
2+  ALL  Q  -H  OK  Q
2+  ALL  H  Q  OK  Q
2+  ALL  -H  Q  OK  Q
2+  ALL  Q  Q  OK  Q
2+  ALL  S  0  i  Q
2+  ALL  S  -0  i  Q
2+  ALL  0  S  i  Q
2+  ALL  -0  S  i  Q
2+  ALL  S  1  i  Q
2+  ALL  S  -1  i  Q
2+  ALL  1  S  i  Q
2+  ALL  -1  S  i  Q
2+  ALL  Ed1  S  i  Q
2+  ALL  -Ed1 S  i  Q
2+  ALL  S  Ed1  i  Q
2+  ALL  S  -Ed1 i  Q
2+  ALL  S  0i1  i  Q
2+  ALL  S  -0i1  i  Q
2+  ALL  0i1  S  i  Q
2+  ALL  -0i1  S  i  Q
2+  ALL  S  Hd1  i  Q
2+  ALL  S  -Hd1 i  Q
2+  ALL  Hd1  S  i  Q
2+  ALL  -Hd1 S  i  Q
2+  ALL  S  H  i  Q
2+  ALL  S  -H  i  Q
2+  ALL  H  S  i  Q
2+  ALL  -H  S  i  Q
2+  ALL  Q  S  i  Q
2+  ALL  S  Q  i  Q
2+  ALL  S  S  i  Q
! First some easy integer cases.
2C  ALL  1  1  OK  =
2C  ALL  1  2  OK  <
2C  ALL  2  1  OK  >
2C  ALL  2  2  OK  =
2C  ALL  2  -2  OK  >
2C  ALL  5  -5  OK  >
2C  ALL  1  7  OK  <
2C  ALL  5  -1  OK  >
2C  ALL  2  -5  OK  >
2C  ALL  5  -0  OK  >
2C  ALL  5  +0  OK  >
! Infinity vs Infinity.
2C  ALL  H  H  OK  =  always equal
2C  ALL  -H  -H  OK  =  always equal
2C  ALL  H  -H  OK  >
2C  ALL  -H  H  OK  <
! Infinity vs huge.
2C  ALL  H  Hm1  OK  >
2C  ALL  H  -Hm1  OK  >
2C  ALL  -H  Hm1  OK  <
2C  ALL  -H  -Hm1  OK  <
2C  ALL  H  Hd1  OK  >
2C  ALL  H  -Hd1  OK  >
2C  ALL  -H  Hd1  OK  <
2C  ALL  -H  -Hd1  OK  <
2C  ALL  Hm1  H  OK  <
2C  ALL  Hm1  -H  OK  >
2C  ALL  -Hm1  H  OK  <
2C  ALL  -Hm1  -H  OK  >
! Infinity vs 0.
2C  ALL  H  0  OK  >
2C  ALL  H  -0  OK  >
2C  ALL  -H  0  OK  <
2C  ALL  -H  -0  OK  <
2C  ALL  0  H  OK  <
2C  ALL  -0  H  OK  <
2C  ALL  0  -H  OK  >
2C  ALL  -0  -H  OK  >
! Infinity vs denormalized.
2C  ALL  H  Ed1  OK  >
2C  ALL  -H  Ed1  OK  <
2C  ALL  H  -Ed1  OK  >
2C  ALL  -H  -Ed1  OK  <
2C  ALL  H  0i1  OK  >
2C  ALL  -H  0i1  OK  <
2C  ALL  H  -0i1  OK  >
2C  ALL  -H  -0i1  OK  <
2C  ALL  Ed1  H  OK  <
2C  ALL  Ed1  -H  OK  >
2C  ALL  -Ed1  H  OK  <
2C  ALL  -Ed1  -H  OK  >
! Zero vs finite -- watch that sign
! of 0 is meaningless.
2C  ALL  0  Hm1  OK  <
2C  ALL  -0  Hm1  OK  <
2C  ALL  -Hm1  0  OK  <
2C  ALL  -Hm1  -0  OK  <
2C  ALL  1  -0  OK  >
2C  ALL  -1  -0  OK  <
2C  ALL  0  1  OK  <
2C  ALL  -0  -1  OK  >
! Zero vs denormalized.
2C  ALL  0  Ed1  OK  <
2C  ALL  -0  Ed1  OK  <
2C  ALL  0  -Ed1  OK  >
2C  ALL  -0  -Ed1  OK  >
2C  ALL  0  0i1  OK  <
2C  ALL  -0  0i1  OK  <
2C  ALL  0  -0i1  OK  >
2C  ALL  -0  -0i1  OK  >
2C  ALL  Ed1  0  OK  >
2C  ALL  Ed1  -0  OK  >
2C  ALL  -Ed1  0  OK  <
2C  ALL  -Ed1  -0  OK  <
! Zero vs tiny -- just in case.
2C  ALL  -0  -E  OK  >
2C  ALL  E  0  OK  >
2C  ALL  0  -E  OK  >
2C  ALL  -E  0  OK  <
! Zero vs Zero -- watch signs
! and rounding modes.
2C  ALL  0  -0  OK  =
2C  ALL  -0  0  OK  =
2C  ALL  0  -0  OK  =
2C  ALL  -0  0  OK  =
! Big cancellations.
2C  ALL  Hm1  Hm1  OK  =
2C  ALL  Hm1  Hm1  OK  =
2C  ALL  -Hm1  -Hm1  OK  =
2C  ALL  -Hm1  -Hm1  OK  =
2C  ALL  Hm1d2  Hm1d2  OK  =
2C  ALL  -Hm1d2  -Hm1d2  OK  =
2C  ALL  Hd1  Hd1  OK  =
2C  ALL  Hd1  Hd1  OK  =
2C  ALL  -Hd1  -Hd1  OK  =
2C  ALL  -Hd1  -Hd1  OK  =
! Medium cancellations.
2C  ALL  1  1  OK  =
2C  ALL  1m1  1m1  OK  =
2C  ALL  3  3  OK  =
2C  ALL  E  E  OK  =
2C  ALL  Hm2  Hm2  OK  =
! Tiny cancellations -- might
! have underflowed.
2C  ALL  Ed1  Ed1  OK  =
2C  ALL  -Ed1  -Ed1  OK  =
2C  ALL  0i4  0i4  OK  =
2C  ALL  -0i4  -0i4  OK  =
2C  ALL  0i1  0i1  OK  =
2C  ALL  -0i1  -0i1  OK  =
! Doublings.
2C  ALL  Hm1  -Hm1  OK  >
2C  ALL  -Hm1d2  Hm1d2  OK  <
2C  ALL  1  -1  OK  >
2C  ALL  -3  3  OK  <
2C  ALL  E  -E  OK  >
2C  ALL  -E  E  OK  <
2C  ALL  Ed4  -Ed4  OK  >
2C  ALL  -Ed1  Ed1  OK  <
2C  ALL  0i1  -0i1  OK  >
2C  ALL  -0i1  0i1  OK  <
! Cancellation with diff in LSB
! Difference is in last place of
! larger number.
! Medium numbers...
2C  ALL  1i1  1  OK  >
2C  ALL  -1i1  -1  OK  <
2C  ALL  1i1  1i2  OK  <
2C  ALL  -1i1  -1i2  OK  >
2C  ALL  2  2i1  OK  <
2C  ALL  -2  -2i1  OK  >
2C  ALL  2i4  2i3  OK  >
2C  ALL  -2i4  -2i3  OK  <
2C  ALL  4d1  4d2  OK  >
2C  ALL  -4d1  -4d2  OK  <
2C  ALL  2d4  2d3  OK  <
2C  ALL  -2d4  -2d3  OK  >
! Huge numbers...
2C  ALL  Hm1i1  Hm1  OK  >
2C  ALL  -Hm1i1  -Hm1  OK  <
2C  ALL  Hm1i1  Hm1i2  OK  <
2C  ALL  -Hm1i1  -Hm1i2  OK  >
2C  ALL  Hm2  Hm2i1  OK  <
2C  ALL  -Hm2  -Hm2i1  OK  >
2C  ALL  Hm2i4  Hm2i3  OK  >
2C  ALL  -Hm2i4  -Hm2i3  OK  <
2C  ALL  Hm2d1  Hm2d2  OK  >
2C  ALL  -Hm2d1  -Hm2d2  OK  <
2C  ALL  -Hd2  -Hd1  OK  >
2C  ALL  Hd2  Hd1  OK  <
! Tiny numbers...
2C  ALL  -Ei1  -E  OK  <
2C  ALL  Ei1  E  OK  >
2C  ALL  -Ed1  -E  OK  >
2C  ALL  Ed1  E  OK  <
2C  ALL  Ei1  Ei2  OK  <
2C  ALL  -Ei1  -Ei2  OK  >
2C  ALL  Ed1  Ed2  OK  >
2C  ALL  -Ed1  -Ed2  OK  <
2C  ALL  Ed3  Ed2  OK  <
2C  ALL  -Ed3  -Ed2  OK  >
2C  ALL  0i2  0i1  OK  >
2C  ALL  -0i2  -0i1  OK  <
2C  ALL  0i3  0i2  OK  >
2C  ALL  -0i3  -0i2  OK  <
! Normalize from round bit -- set up
! tests so that operands have
! exponents differing by 1 unit.
! Medium numbers...
2C  ALL  2  2d1  OK  >
2C  ALL  -2  -2d1  OK  <
2C  ALL  -2d1  -2  OK  >
2C  ALL  2d1  2  OK  <
2C  ALL  4i1  4d1  OK  >
2C  ALL  -4i1  -4d1  OK  <
2C  ALL  4d1  4i2  OK  <
2C  ALL  -4d1  -4i2  OK  >
2C  ALL  2i1  1i1  OK  >
2C  ALL  -2i1  -1i1  OK  <
2C  ALL  2i2  1i1  OK  >
2C  ALL  -2i2  -1i1  OK  <
2C  ALL  2i2  1i3  OK  >
2C  ALL  -2i2  -1i3  OK  <
! Huge numbers...
2C  ALL  Hm2  Hm2d1  OK  >
2C  ALL  -Hm2  -Hm2d1  OK  <
2C  ALL  -Hm1d1  -Hm1  OK  >
2C  ALL  Hm1d1  Hm1  OK  <
2C  ALL  Hm4i1  Hm4d1  OK  >
2C  ALL  -Hm4i1  -Hm4d1  OK  <
2C  ALL  Hm2d1  Hm2i2  OK  <
2C  ALL  -Hm2d1  -Hm2i2  OK  >
2C  ALL  Hm2i1  Hm1i1  OK  <
2C  ALL  -Hm2i1  -Hm1i1  OK  >
2C  ALL  Hm1i2  Hm2i1  OK  >
2C  ALL  -Hm1i2  -Hm2i1  OK  <
2C  ALL  Hm2i2  Hm3i3  OK  >
2C  ALL  -Hm2i2  -Hm3i3  OK  <
! Tiny numbers...
2C  ALL  Ep1  Ep1d1  OK  >
2C  ALL  -Ep1  -Ep1d1  OK  <
2C  ALL  -Ep1d1  -Ep1  OK  >
2C  ALL  Ep1d1  Ep1  OK  <
2C  ALL  Ep1i1  Ep1d1  OK  >
2C  ALL  -Ep1i1  -Ep1d1  OK  <
2C  ALL  Ep2  Ep2d1  OK  >
2C  ALL  -Ep2  -Ep2d1  OK  <
2C  ALL  -Ep2d1  -Ep2  OK  >
2C  ALL  Ep2d1  Ep2  OK  <
2C  ALL  Ep2i1  Ep2d1  OK  >
2C  ALL  -Ep2i1  -Ep2d1  OK  <
2C  ALL  Ep1d1  Ep1i2  OK  <
2C  ALL  -Ep1d1  -Ep1i2  OK  >
2C  ALL  Ep1d1  Ep1i4  OK  <
2C  ALL  -Ep1d1  -Ep1i4  OK  >
2C  ALL  Ep1i1  Ei1  OK  >
2C  ALL  -Ep1i1  -Ei1  OK  <
2C  ALL  Ep1i2  Ei1  OK  >
2C  ALL  -Ep1i2  -Ei1  OK  <
2C  ALL  Ep2i2  Ep1i3  OK  >
2C  ALL  -Ep2i2  -Ep1i3  OK  <
!
! Add magnitude cases where one operand
! is off in sticky -- rounding
! perhaps to an overflow.
! Huge vs medium
2C  ALL  Hm1  1  OK  >
2C  ALL  -Hm1  -1  OK  <
2C  ALL  Hm1d1  -1  OK  >
2C  ALL  Hm1d1  1  OK  >
2C  ALL  -Hm1d1  1  OK  <
2C  ALL  -Hm1d1  -1  OK  <
2C  ALL  Hd1  1  OK  >
2C  ALL  Hd1  -1  OK  >
2C  ALL  -Hd1  1  OK  <
2C  ALL  -Hd1  -1  OK  <
2C  ALL  Hd2  -1  OK  >
2C  ALL  Hd2  1  OK  >
2C  ALL  -Hd2  1  OK  <
2C  ALL  -Hd2  -1  OK  <
! Huge vs tiny.
2C  ALL  0i1  Hm1  OK  <
2C  ALL  0i1  -Hm1  OK  >
2C  ALL  -0i1  Hm1  OK  <
2C  ALL  -0i1  -Hm1  OK  >
2C  ALL  0i1  Hm1d1  OK  <
2C  ALL  0i1  -Hm1d1  OK  >
2C  ALL  -0i1  Hm1d1  OK  <
2C  ALL  -0i1  -Hm1d1  OK  >
2C  ALL  0i1  Hd1  OK  <
2C  ALL  0i1  -Hd1  OK  >
2C  ALL  -0i1  Hd1  OK  <
2C  ALL  -0i1  -Hd1  OK  >
2C  ALL  0i1  Hd2  OK  <
2C  ALL  0i1  -Hd2  OK  >
2C  ALL  -0i1  Hd2  OK  <
2C  ALL  -0i1  -Hd2  OK  >
! Medium vs tiny.
2C  ALL  0i1  1  OK  <
2C  ALL  0i1  -1  OK  >
2C  ALL  -0i1  1  OK  <
2C  ALL  -0i1  -1  OK  >
2C  ALL  0i1  1d1  OK  <
2C  ALL  0i1  -1d1  OK  >
2C  ALL  -0i1  1d1  OK  <
2C  ALL  -0i1  -1d1  OK  >
2C  ALL  0i1  2d1  OK  <
2C  ALL  0i1  -2d1  OK  >
2C  ALL  -0i1  2d1  OK  <
2C  ALL  -0i1  -2d1  OK  >
2C  ALL  0i1  2d2  OK  <
2C  ALL  0i1  -2d2  OK  >
2C  ALL  -0i1  2d2  OK  <
2C  ALL  -0i1  -2d2  OK  >
!
! Magnitude subtract when an operand
! is in the sticky bit.
! The interesting cases will arise
! when directed rounding
! forces a nonzero cancellation.
! Huge and medium.
2C  ALL  Hm1  1  OK  >
2C  ALL  Hm1  -1  OK  >
2C  ALL  -Hm1  1  OK  <
2C  ALL  -Hm1  -1  OK  <
2C  ALL  Hm1d1  1  OK  >
2C  ALL  Hm1d1  -1  OK  >
2C  ALL  -Hm1d1  1  OK  <
2C  ALL  -Hm1d1  -1  OK  <
2C  ALL  Hd1  1  OK  >
2C  ALL  Hd1  -1  OK  >
2C  ALL  -Hd1  1  OK  <
2C  ALL  -Hd1  -1  OK  <
2C  ALL  Hd2  1  OK  >
2C  ALL  Hd2  -1  OK  >
2C  ALL  -Hd2  1  OK  <
2C  ALL  -Hd2  -1  OK  <
! Huge and tiny.
2C  ALL  Hd1  0i1  OK  >
2C  ALL  Hd1  -0i1  OK  >
2C  ALL  -Hd1  0i1  OK  <
2C  ALL  -Hd1  -0i1  OK  <
2C  ALL  0i3  Hm1  OK  <
2C  ALL  -0i3  Hm1  OK  <
2C  ALL  0i3  -Hm1  OK  >
2C  ALL  -0i3  -Hm1  OK  >
! Medium and tiny.
2C  ALL  1d1  0i1  OK  >
2C  ALL  1d1  -0i1  OK  >
2C  ALL  2d1  0i1  OK  >
2C  ALL  -2d1  0i1  OK  <
2C  ALL  0i3  3  OK  <
2C  ALL  -0i3  3  OK  <
2C  ALL  0i3  5  OK  <
2C  ALL  0i3  -5  OK  >
!
! Add magnitude with difference in
! LSB so, except for denorms,
! round bit is crucial.
! Half-way cases arise.
! Medium cases.
2C  ALL  1i1  1  OK  >
2C  ALL  1i1  -1  OK  >
2C  ALL  -1i1  1  OK  <
2C  ALL  -1i1  -1  OK  <
2C  ALL  -2  2i1  OK  <
2C  ALL  -2  -2i1  OK  >
2C  ALL  2  -2i1  OK  >
2C  ALL  2  2i1  OK  <
2C  ALL  1  1i3  OK  <
2C  ALL  1  -1i3  OK  >
2C  ALL  -1  1i3  OK  <
2C  ALL  -1  -1i3  OK  >
2C  ALL  -2i1  -2i2  OK  >
2C  ALL  -2i1  2i2  OK  <
2C  ALL  2i1  -2i2  OK  >
2C  ALL  2i1  2i2  OK  <
! Huge cases.
2C  ALL  Hd2  Hd1  OK  <
2C  ALL  Hd2  -Hd1  OK  >
2C  ALL  -Hd2  Hd1  OK  <
2C  ALL  -Hd2  -Hd1  OK  >
2C  ALL  Hm1d1  Hm1  OK  <
2C  ALL  Hm1d1  -Hm1  OK  >
2C  ALL  -Hm1d1  Hm1  OK  <
2C  ALL  -Hm1d1  -Hm1  OK  >
2C  ALL  Hm1i1  Hm1  OK  >
2C  ALL  Hm1i1  -Hm1  OK  >
2C  ALL  -Hm1i1  Hm1  OK  <
2C  ALL  -Hm1i1  -Hm1  OK  <
2C  ALL  Hm2i1  Hm2  OK  >
2C  ALL  Hm2i1  -Hm2  OK  >
2C  ALL  -Hm2i1  Hm2  OK  <
2C  ALL  -Hm2i1  -Hm2  OK  <
2C  ALL  Hm1d2  Hm1d1  OK  <
2C  ALL  Hm1d2  -Hm1d1  OK  >
2C  ALL  -Hm1d2  Hm1d1  OK  <
2C  ALL  -Hm1d2  -Hm1d1  OK  >
! NaN operands.
2C  ALL  Q  0  OK  ?
2C  ALL  Q  -0  OK  ?
2C  ALL  0  Q  OK  ?
2C  ALL  -0  Q  OK  ?
2C  ALL  Q  1  OK  ?
2C  ALL  Q  -1  OK  ?
2C  ALL  1  Q  OK  ?
2C  ALL  -1  Q  OK  ?
2C  ALL  Ed1  Q  OK  ?
2C  ALL  -Ed1 Q  OK  ?
2C  ALL  Q  Ed1  OK  ?
2C  ALL  Q  -Ed1 OK  ?
2C  ALL  Q  0i1  OK  ?
2C  ALL  Q  -0i1  OK  ?
2C  ALL  0i1  Q  OK  ?
2C  ALL  -0i1  Q  OK  ?
2C  ALL  Q  Hd1  OK  ?
2C  ALL  Q  -Hd1 OK  ?
2C  ALL  Hd1  Q  OK  ?
2C  ALL  -Hd1 Q  OK  ?
2C  ALL  Q  H  OK  ?
2C  ALL  Q  -H  OK  ?
2C  ALL  H  Q  OK  ?
2C  ALL  -H  Q  OK  ?
2C  ALL  Q  Q  OK  ?
2C  ALL  S  0  i  ?
2C  ALL  S  -0  i  ?
2C  ALL  0  S  i  ?
2C  ALL  -0  S  i  ?
2C  ALL  S  1  i  ?
2C  ALL  S  -1  i  ?
2C  ALL  1  S  i  ?
2C  ALL  -1  S  i  ?
2C  ALL  Ed1  S  i  ?
2C  ALL  -Ed1 S  i  ?
2C  ALL  S  Ed1  i  ?
2C  ALL  S  -Ed1 i  ?
2C  ALL  S  0i1  i  ?
2C  ALL  S  -0i1  i  ?
2C  ALL  0i1  S  i  ?
2C  ALL  -0i1  S  i  ?
2C  ALL  S  Hd1  i  ?
2C  ALL  S  -Hd1 i  ?
2C  ALL  Hd1  S  i  ?
2C  ALL  -Hd1 S  i  ?
2C  ALL  S  H  i  ?
2C  ALL  S  -H  i  ?
2C  ALL  H  S  i  ?
2C  ALL  -H  S  i  ?
2C  ALL  Q  S  i  ?
2C  ALL  S  Q  i  ?
2C  ALL  S  S  i  ?
!
! CopySign test vectors:
!
2@  ALL  1  1  OK  1
2@  ALL  1  -1  OK  -1
2@  ALL  -1  1  OK  1
2@  ALL  -1  -1  OK  -1
2@  ALL  1  0i1  OK  1
2@  ALL  1  -0i1  OK  -1
2@  ALL  -1  0i1  OK  1
2@  ALL  -1  -0i1  OK  -1
2@  ALL  1  Hd1  OK  1
2@  ALL  1  -Hd1  OK  -1
2@  ALL  -1  Hd1  OK  1
2@  ALL  -1  -Hd1  OK  -1
2@  ALL  1  H  OK  1
2@  ALL  1  -H  OK  -1
2@  ALL  -1  H  OK  1
2@  ALL  -1  -H  OK  -1
2@  ALL  1  0  OK  1
2@  ALL  1  -0  OK  -1
2@  ALL  -1  0  OK  1
2@  ALL  -1  -0  OK  -1
2@  ALL  0i1  1  OK  0i1
2@  ALL  0i1  -1  OK  -0i1
2@  ALL  -0i1  1  OK  0i1
2@  ALL  -0i1  -1  OK  -0i1
2@  ALL  0i1  H  OK  0i1
2@  ALL  0i1  -H  OK  -0i1
2@  ALL  -0i1  H  OK  0i1
2@  ALL  -0i1  -H  OK  -0i1
2@  ALL  0i1  0  OK  0i1
2@  ALL  0i1  -0  OK  -0i1
2@  ALL  -0i1  0  OK  0i1
2@  ALL  -0i1  -0  OK  -0i1
2@  ALL  Hd1  E  OK  Hd1
2@  ALL  Hd1  -E  OK  -Hd1
2@  ALL  -Hd1  E  OK  Hd1
2@  ALL  -Hd1  -E  OK  -Hd1
2@  ALL  Hd1  H  OK  Hd1
2@  ALL  Hd1  -H  OK  -Hd1
2@  ALL  -Hd1  H  OK  Hd1
2@  ALL  -Hd1  -H  OK  -Hd1
2@  ALL  Hd1  0  OK  Hd1
2@  ALL  Hd1  -0  OK  -Hd1
2@  ALL  -Hd1  0  OK  Hd1
2@  ALL  -Hd1  -0  OK  -Hd1
2@  ALL  H  1  OK  H
2@  ALL  H  -1  OK  -H
2@  ALL  -H  1  OK  H
2@  ALL  -H  -1  OK  -H
2@  ALL  H  Ed1  OK  H
2@  ALL  H  -Ed1  OK  -H
2@  ALL  -H  Ed1  OK  H
2@  ALL  -H  -Ed1  OK  -H
2@  ALL  H  0  OK  H
2@  ALL  H  -0  OK  -H
2@  ALL  -H  0  OK  H
2@  ALL  -H  -0  OK  -H
2@  ALL  H  H  OK  H
2@  ALL  H  -H  OK  -H
2@  ALL  -H  H  OK  H
2@  ALL  -H  -H  OK  -H
! NaNs -- FPTEST checks that NaNs
! are returned and with no exceptions.
2@  ALL  Q  1  OK  Q
2@  ALL  Q  -1  OK  -Q
2@  ALL  -Q  1  OK  Q
2@  ALL  -Q  -1  OK  -Q
2@  ALL  Q  0i1  OK  Q
2@  ALL  Q  -0i1  OK  -Q
2@  ALL  -Q  0i1  OK  Q
2@  ALL  -Q  -0i1  OK  -Q
2@  ALL  Q  H  OK  Q
2@  ALL  Q  -H  OK  -Q
2@  ALL  -Q  H  OK  Q
2@  ALL  -Q  -H  OK  -Q
2@  ALL  Q  0  OK  Q
2@  ALL  Q  -0  OK  -Q
2@  ALL  -Q  0  OK  Q
2@  ALL  -Q  -0  OK  -Q
2@  ALL  S  1  OK  S
2@  ALL  S  -1  OK  -S
2@  ALL  -S  1  OK  S
2@  ALL  -S  -1  OK  -S
2@  ALL  S  0i1  OK  S
2@  ALL  S  -0i1  OK  -S
2@  ALL  -S  0i1  OK  S
2@  ALL  -S  -0i1  OK  -S
2@  ALL  S  H  OK  S
2@  ALL  S  -H  OK  -S
2@  ALL  -S  H  OK  S
2@  ALL  -S  -H  OK  -S
2@  ALL  S  0  OK  S
2@  ALL  S  -0  OK  -S
2@  ALL  -S  0  OK  S
2@  ALL  -S  -0  OK  -S
2@  ALL  1  Q  OK  1
2@  ALL  1  -Q  OK  -1
2@  ALL  1  S  OK  1
2@  ALL  1  -S  OK  -1
2@  ALL  -1  Q  OK  1
2@  ALL  -1  -Q  OK  -1
2@  ALL  -1  S  OK  1
2@  ALL  -1  -S  OK  -1
2@  ALL  H  Q  OK  H
2@  ALL  H  -Q  OK  -H
2@  ALL  H  S  OK  H
2@  ALL  H  -S  OK  -H
2@  ALL  -H  Q  OK  H
2@  ALL  -H  -Q  OK  -H
2@  ALL  -H  S  OK  H
2@  ALL  -H  -S  OK  -H
2@  ALL  S  Q  OK  S
2@  ALL  S  -Q  OK  -S
2@  ALL  S  S  OK  S
2@  ALL  S  -S  OK  -S
2@  ALL  -S  Q  OK  S
2@  ALL  -S  -Q  OK  -S
2@  ALL  -S  S  OK  S
2@  ALL  -S  -S  OK  -S
2@  ALL  Q  Q  OK  Q
2@  ALL  Q  -Q  OK  -Q
2@  ALL  Q  S  OK  Q
2@  ALL  Q  -S  OK  -Q
2@  ALL  -Q  Q  OK  Q
2@  ALL  -Q  -Q  OK  -Q
2@  ALL  -Q  S  OK  Q
2@  ALL  -Q  -S  OK  -Q
! First the consistency checks.
2/  ALL  1  1  OK  1
2/  ALL  2  1  OK  2
2/  ALL  9  3  OK  3
2/  ALL  5  5  OK  1
2/  ALL  8  2  OK  4
! Check out sign manipulation.
2/  ALL  -1  1  OK  -1
2/  ALL  -2  1  OK  -2
2/  ALL  2  -1  OK  -2
2/  ALL  -8  2  OK  -4
2/  ALL  3  -3  OK  -1
2/  ALL  -7  7  OK  -1
2/  ALL  -1  -1  OK  1
2/  ALL  -2  -1  OK  2
2/  ALL  -6  -3  OK  2
2/  ALL  -9  -3  OK  3
! Some zero tests, round mode
! is irrelevant.
2/  ALL  0  0  i  Q
2/  ALL  -0  0  i  -Q
2/  ALL  0  -0  i  -Q
2/  ALL  -0  -0  i  Q
! Infinity tests, round mode
! irrelevant.
2/  ALL  H  H  i  Q
2/  ALL  -H  H  i  -Q
2/  ALL  H  -H  i  -Q
2/  ALL  -H  -H  i  Q
! Inf / 0 --> Inf with no problem.
2/  ALL  H  0  OK  H
2/  ALL  -H  0  OK  -H
2/  ALL  H  -0  OK  -H
2/  ALL  -H  -0  OK  H
! 0 / Inf --> 0 with no problem.
2/  ALL  0  H  OK  0
2/  ALL  -0  H  OK  -0
2/  ALL  0  -H  OK  -0
2/  ALL  -0  -H  OK  0
! Inf / small_integer -> Inf.
2/  ALL  H  1  OK  H
2/  ALL  -H  2  OK  -H
2/  ALL  H  -3  OK  -H
2/  ALL  -H  -4  OK  H
2/  ALL  H  5  OK  H
2/  ALL  -H  6  OK  -H
2/  ALL  H  -7  OK  -H
2/  ALL  -H  -8  OK  H
! Small_int / Inf -> 0.
2/  ALL  1  H  OK  0
2/  ALL  -2  H  OK  -0
2/  ALL  3  -H  OK  -0
2/  ALL  -4  -H  OK  0
2/  ALL  5  H  OK  0
2/  ALL  -6  H  OK  -0
2/  ALL  7  -H  OK  -0
2/  ALL  -8  -H  OK  0
! Huge / Inf -> 0.
2/  ALL  Hm1  H  OK  0
2/  ALL  -Hm2  H  OK  -0
2/  ALL  Hm1  -H  OK  -0
2/  ALL  -Hm2  -H  OK  0
2/  ALL  Hm1d1  H  OK  0
2/  ALL  -Hm2d1  H  OK  -0
2/  ALL  Hd1  -H  OK  -0
2/  ALL  -Hd1  -H  OK  0
! Inf / huge -> Inf.
2/  ALL  H  Hm1  OK  H
2/  ALL  -H  Hm2  OK  -H
2/  ALL  H  -Hm1  OK  -H
2/  ALL  -H  -Hm2  OK  H
2/  ALL  H  Hm1d1  OK  H
2/  ALL  H  -Hm2d1  OK  -H
2/  ALL  H  -Hd1  OK  -H
2/  ALL  -H  -Hd1  OK  H
! Inf / tiny -> Inf.
2/  ALL  H  E  OK  H
2/  ALL  -H  Ep1  OK  -H
2/  ALL  H  -Ep1  OK  -H
2/  ALL  -H  -E  OK  H
2/  ALL  H  Ep1d1  OK  H
2/  ALL  -H  Ei1  OK  -H
2/  ALL  H  -Ei1  OK  -H
2/  ALL  -H  -Ep1d1  OK  H
! Tiny / Inf -> 0.
2/  ALL  E  H  OK  0
2/  ALL  -Ep1  H  OK  -0
2/  ALL  Ep1  -H  OK  -0
2/  ALL  -E  -H  OK  0
2/  ALL  Ep1d1  H  OK  0
2/  ALL  -Ei1  H  OK  -0
2/  ALL  Ei1  -H  OK  -0
2/  ALL  -Ep1d1  -H  OK  0
! Inf / denormalized -> Inf.
2/  ALL  H  0i1  OK  H
2/  ALL  -H  0i3  OK  -H
2/  ALL  H  -0i2  OK  -H
2/  ALL  -H  -0i4  OK  H
2/  ALL  H  Ed1  OK  H
2/  ALL  -H  Ed1  OK  -H
2/  ALL  H  -Ed1  OK  -H
2/  ALL  -H  -Ed1  OK  H
! Denorm / Inf -> 0.
2/  ALL  0i1  H  OK  0
2/  ALL  -0i3  H  OK  -0
2/  ALL  0i2  -H  OK  -0
2/  ALL  -0i4  -H  OK  0
2/  ALL  Ed1  H  OK  0
2/  ALL  -Ed1  H  OK  -0
2/  ALL  Ed1  -H  OK  -0
2/  ALL  -Ed1  -H  OK  0
! 0 / small_integer -> 0.
2/  ALL  0  1  OK  0
2/  ALL  -0  2  OK  -0
2/  ALL  0  -3  OK  -0
2/  ALL  -0  -4  OK  0
2/  ALL  0  5  OK  0
2/  ALL  -0  6  OK  -0
2/  ALL  0  -7  OK  -0
2/  ALL  -0  -8  OK  0
! Small_int / 0 -> Inf with DivBy0.
2/  ALL  1  0  z  H
2/  ALL  -2  0  z  -H
2/  ALL  3  -0  z  -H
2/  ALL  -4  -0  z  H
2/  ALL  5  0  z  H
2/  ALL  -6  0  z  -H
2/  ALL  7  -0  z  -H
2/  ALL  -8  -0  z  H
! 0 / huge -> 0.
2/  ALL  0  Hm1  OK  0
2/  ALL  -0  Hm2  OK  -0
2/  ALL  0  -Hm1  OK  -0
2/  ALL  -0  -Hm2  OK  0
2/  ALL  0  Hm1d1  OK  0
2/  ALL  -0  Hm2d1  OK  -0
2/  ALL  0  -Hm2d1  OK  -0
2/  ALL  -0  -Hm1d1  OK  0
! Huge / 0 -> Inf with DivBy0.
2/  ALL  Hm1  0  z  H
2/  ALL  -Hm2  0  z  -H
2/  ALL  Hm1  -0  z  -H
2/  ALL  -Hm2  -0  z  H
2/  ALL  Hm1d1  0  z  H
2/  ALL  -Hm2d1  0  z  -H
2/  ALL  Hm2d1  -0  z  -H
2/  ALL  -Hm1d1  -0  z  H
! 0 / tiny -> 0.
2/  ALL  0  E  OK  0
2/  ALL  -0  Ep1  OK  -0
2/  ALL  0  -Ep1  OK  -0
2/  ALL  -0  -E  OK  0
2/  ALL  0  Ep1d1  OK  0
2/  ALL  -0  Ei1  OK  -0
2/  ALL  0  -Ei1  OK  -0
2/  ALL  -0  -Ep1d1  OK  0
! Tiny / 0 -> Inf with DivBy0.
2/  ALL  E  0  z  H
2/  ALL  -Ep1  0  z  -H
2/  ALL  Ep1  -0  z  -H
2/  ALL  -E  -0  z  H
2/  ALL  Ep1d1  0  z  H
2/  ALL  -Ei1  0  z  -H
2/  ALL  Ei1  -0  z  -H
2/  ALL  -Ep1d1  -0  z  H
! 0 / denormalized -> 0.
2/  ALL  0  0i1  OK  0
2/  ALL  -0  0i3  OK  -0
2/  ALL  0  -0i2  OK  -0
2/  ALL  -0  -0i4  OK  0
2/  ALL  0  Ed1  OK  0
2/  ALL  -0  Ed1  OK  -0
2/  ALL  0  -Ed1  OK  -0
2/  ALL  -0  -Ed1  OK  0
! Denormalized * 0 -> Inf, DivBy0.
2/  ALL  0i1  0  z  H
2/  ALL  -0i3  0  z  -H
2/  ALL  0i2  -0  z  -H
2/  ALL  -0i4  -0  z  H
2/  ALL  Ed1  0  z  H
2/  ALL  -Ed1  0  z  -H
2/  ALL  Ed1  -0  z  -H
2/  ALL  -Ed1  -0  z  H
! Exact cases huge and 2.
2/  ALL  Hm1  2  OK  Hm2
2/  ALL  Hm1  -2  OK  -Hm2
2/  ALL  -Hm1d1  2  OK  -Hm2d1
2/  ALL  Hm1d3  -2  OK  -Hm2d3
2/  ALL  Hm1  2  OK  Hm2
2/  ALL  Hm1  -2  OK  -Hm2
2/  ALL  -Hm1d1  2  OK  -Hm2d1
2/  ALL  Hm1d3  -2  OK  -Hm2d3
2/  ALL  Hd1  Hm1d1  OK  2
2/  ALL  Hd1  -2  OK  -Hm1d1
2/  ALL  -Hm1i1  Hm2i1  OK  -2
2/  ALL  Hm1i3  -Hm2i3  OK  -2
2/  ALL  Hd1  Hm1d1  OK  2
2/  ALL  Hd1  -2  OK  -Hm1d1
2/  ALL  -Hm1i1  Hm2i1  OK  -2
2/  ALL  Hm1i3  -Hm2i3  OK  -2
! Exact cases huge and 4.
2/  ALL  Hd1  Hm2d1  OK  4
2/  ALL  -Hd1  Hm2d1  OK  -4
2/  ALL  Hd1  -Hm2d1  OK  -4
2/  ALL  -Hd1  -Hm2d1  OK  4
2/  ALL  Hd1  Hm2d1  OK  4
2/  ALL  -Hd1  Hm2d1  OK  -4
2/  ALL  Hd1  -Hm2d1  OK  -4
2/  ALL  -Hd1  -Hm2d1  OK  4
2/  ALL  Hd3  4  OK  Hm2d3
2/  ALL  Hd3  -4  OK  -Hm2d3
2/  ALL  -Hd3  4  OK  -Hm2d3
2/  ALL  -Hd3  -4  OK  Hm2d3
2/  ALL  Hd3  4  OK  Hm2d3
2/  ALL  Hd3  -4  OK  -Hm2d3
2/  ALL  -Hd3  4  OK  -Hm2d3
2/  ALL  -Hd3  -4  OK  Hm2d3
! Exact cases tiny and 2.
2/  ALL  Ep1  E  OK  2
2/  ALL  Ep1  -2  OK  -E
2/  ALL  -Ep1i1  Ei1  OK  -2
2/  ALL  Ep1i3  -2  OK  -Ei3
2/  ALL  Ep1  E  OK  2
2/  ALL  Ep1  -2  OK  -E
2/  ALL  -Ep1i1  Ei1  OK  -2
2/  ALL  Ep1i3  -2  OK  -Ei3
2/  ALL  Ep1i1  Ei1  OK  2
2/  ALL  Ep1i1  -2  OK  -Ei1
2/  ALL  -Ep1i5  Ei5  OK  -2
2/  ALL  Ep1i3  -Ei3  OK  -2
2/  ALL  Ep1i1  Ei1  OK  2
2/  ALL  Ep1i1  -2  OK  -Ei1
2/  ALL  -Ep1i5  Ei5  OK  -2
2/  ALL  Ep1i3  -Ei3  OK  -2
2/  ALL  Ed1  1m1  OK  Ep1d2
2/  ALL  Ed1  1m9  OK  Ep9d2
! Huge / tiny -> overflow.
2/  =>  Hm1  1m1  ox  H
2/  0<  Hm1  1m1  ox  Hd1
2/  =>  -Hm1  -1m1  ox  H
2/  0<  -Hm1  -1m1  ox  Hd1
2/  =<  Hm1  -1m1  ox  -H
2/  =<  -Hm1  1m1  ox  -H
2/  0>  Hm1  -1m1  ox  -Hd1
2/  0>  -Hm1  1m1  ox  -Hd1
2/  =>  Hm9  Ep9  ox  H
2/  0<  Hm9  Ep9  ox  Hd1
2/  =>  Hd1  0i1  ox  H
2/  0<  Hd1  0i1  ox  Hd1
2/  =>  Hm1  Ed1  ox  H
2/  0<  Hm1  Ed1  ox  Hd1
2/  =>  Hd1  1d1  ox  H
2/  0<  Hd1  1d1  ox  Hd1
! Will underflow unless loss of accuracy
! is detected as a denormalization loss.
2/  =0<  E  1i1  xv  Ed1
2/  =0>  -E  1i1  xv  -Ed1
2/  >=  Ed2  1d2  xv  Ed1
2/  >=  Ed9  1d2  xv  Ed8
2/  <=  -Ed8  1d2  xv  -Ed7
2/  <=0  Ei1  1i2  xv  Ed1
2/  <=0  Ed1  1i2  xv  Ed3
2/  <=0  Ei2  1i6  xv  Ed4
2/  0<  Ed1  1i1  xv  Ed2
! Tiny / huge -> underflow.
2/  =<0  0i1  Hd1  xu  0
2/  >  0i1  Hd1  xu  0i1
2/  =<0  -0i1  -Hd1  xu  0
2/  >  -0i1  -Hd1  xu  0i1
2/  =0>  0i1  -Hd1 xu  -0
2/  <  0i1  -Hd1 xu  -0i1
2/  =0>  -0i1  Hd1 xu  -0
2/  <  -0i1  Hd1 xu  -0i1
! Tiny / 2.
2/  >  0i1  2  xu  0i1
2/  =0<  0i1  2  xu  0
2/  >  -0i1  -2  xu  0i1
2/  =0<  -0i1  -2  xu  0
2/  <  0i1  -2  xu  -0i1
2/  =0>  0i1  -2  xu  -0
2/  <  -0i1  2  xu  -0i1
2/  =0>  -0i1  2  xu  -0
! Barely underflow.
2/  0<  Ep1d1  2  xu  Ed1  
2/  0>  Ep1d1  -2  xu  -Ed1
2/  >=  Ep1d1  2  xu  E
2/  >  E  1i1  xu  E
2/  <  -E  1i1  xu  -E
2/  >  Ei1  1i2  xu  E
2/  >  Ed1  1i2  xu  Ed2
! Denorm result but will not underflow.
2/  ALL  Ep1d2  2  OK  Ed1
2/  ALL  Ed1  1  OK  Ed1
2/  ALL  0i1  1m1  OK  0i2
2/  ALL  0i1  1m3  OK  0i8
2/  ALL  0i9  9  OK  0i1
2/  ALL  0i9  -9  OK  -0i1
2/  ALL  Ed1  -1  OK  -Ed1
2/  ALL  -0i1  1m1  OK  -0i2
! Tricky divides based on power
! series expansions
! 1 / (1 + Nulp+) -->
! 1 - (2Nulp-) + tiny.
2/  =  1  1i1  x  1d2
2/  0  1  1i1  x  1d2
2/  <  1  1i1  x  1d2
2/  >  1  1i1  x  1d1
2/  =  1  1i2  x  1d4
2/  0  1  1i2  x  1d4
2/  <  1  1i2  x  1d4
2/  >  1  1i2  x  1d3
2/  =  1  1i3  x  1d6
2/  0  1  1i3  x  1d6
2/  <  1  1i3  x  1d6
2/  >  1  1i3  x  1d5
2/  =  1  1i4  x  1d8
2/  0  1  1i4  x  1d8
2/  <  1  1i4  x  1d8
2/  >  1  1i4  x  1d7
! 1 / (1 - Nu-) -->
! 1 + (Q/2 u+) + tiny.
2/  =  1  1d1  x  1i1
2/  0  1  1d1  x  1
2/  <  1  1d1  x  1
2/  >  1  1d1  x  1i1
2/  =  1  1d2  x  1i1
2/  0  1  1d2  x  1i1
2/  <  1  1d2  x  1i1
2/  >  1  1d2  x  1i2
2/  =  1  1d3  x  1i2
2/  0  1  1d3  x  1i1
2/  <  1  1d3  x  1i1
2/  >  1  1d3  x  1i2
2/  =  1  1d4  x  1i2
2/  0  1  1d4  x  1i2
2/  <  1  1d4  x  1i2
2/  >  1  1d4  x  1i3
2/  =  1  1d5  x  1i3
2/  0  1  1d5  x  1i2
2/  <  1  1d5  x  1i2
2/  >  1  1d5  x  1i3
2/  =  1  1d8  x  1i4
2/  0  1  1d8  x  1i4
2/  <  1  1d8  x  1i4
2/  >  1  1d8  x  1i5
2/  =  1  1d9  x  1i5
2/  0  1  1d9  x  1i4
2/  <  1  1d9  x  1i4
2/  >  1  1d9  x  1i5
! (1 + Mu+) / (1 + Nu+) -->
! Case M > Q: (1 + Mu+) *
! (1 - Nu+ + (Nu+)^2 - tiny) -->
! 1 + (M-Q)u+ - (MN-NN)(u+)^2 + tiny -->
! 1 + (M-Q)u+ - tiny.
! M + Q = 3.
2/  =  1i2  1i1  x  1i1
2/  0  1i2  1i1  x  1
2/  <  1i2  1i1  x  1
2/  >  1i2  1i1  x  1i1
! M + Q = 4.
2/  =  1i3  1i1  x  1i2
2/  0  1i3  1i1  x  1i1
2/  <  1i3  1i1  x  1i1
2/  >  1i3  1i1  x  1i2
! M + Q = 5.
2/  =  1i4  1i1  x  1i3
2/  0  1i4  1i1  x  1i2
2/  <  1i4  1i1  x  1i2
2/  >  1i4  1i1  x  1i3
! M + Q = 9.
2/  =  1i7  1i2  x  1i5
2/  0  1i7  1i2  x  1i4
2/  <  1i7  1i2  x  1i4
2/  >  1i7  1i2  x  1i5
! Q = 17.
2/  =  1i9  1i8  x  1i1
2/  0  1i9  1i8  x  1
2/  <  1i9  1i8  x  1
2/  >  1i9  1i8  x  1i1
! (1 + Mulp+) / (1 + Nulp+) -->
! Case M < Q: (1 + 2Mulp-) *
! (1 - 2Nulp- + (2Nulp-)^2 - tiny) -->
! 1 - 2(Q-M)ulp- +
!  4(NN-MN)(ulp-)^2 + tiny -->
! 1 - 2(Q-M)ulp- + tiny.
! M + Q = 3.
2/  =  1i1  1i2  x  1d2
2/  0  1i1  1i2  x  1d2
2/  <  1i1  1i2  x  1d2
2/  >  1i1  1i2  x  1d1
! M + Q = 4.
2/  =  1i1  1i3  x  1d4
2/  0  1i1  1i3  x  1d4
2/  <  1i1  1i3  x  1d4
2/  >  1i1  1i3  x  1d3
! M + Q = 5.
2/  =  1i2  1i3  x  1d2
2/  0  1i2  1i3  x  1d2
2/  <  1i2  1i3  x  1d2
2/  >  1i2  1i3  x  1d1
! M + Q = 11.
2/  =  1i4  1i7  x  1d6
2/  0  1i4  1i7  x  1d6
2/  <  1i4  1i7  x  1d6
2/  >  1i4  1i7  x  1d5
! M + Q = 14.
2/  =  1i6  1i8  x  1d4
2/  0  1i6  1i8  x  1d4
2/  <  1i6  1i8  x  1d4
2/  >  1i6  1i8  x  1d3
! (1 - Mulp-) / (1 - Nulp-) -->
! Case M > Q: (1 - Mulp-) *
! (1 + Nulp- + (Nulp-)^2 + tiny) -->
! 1 - (M-Q)ulp- -
!  (MN-NN)(ulp-)^2 + tiny -->
! 1 - (M-Q)ulp- - tiny.
! M + Q = 3.
2/  =  1d2  1d1  x  1d1
2/  0  1d2  1d1  x  1d2
2/  <  1d2  1d1  x  1d2
2/  >  1d2  1d1  x  1d1
! M + Q = 4.
2/  =  1d3  1d1  x  1d2
2/  0  1d3  1d1  x  1d3
2/  <  1d3  1d1  x  1d3
2/  >  1d3  1d1  x  1d2
! M + Q = 5.
2/  =  1d3  1d2  x  1d1
2/  0  1d3  1d2  x  1d2
2/  <  1d3  1d2  x  1d2
2/  >  1d3  1d2  x  1d1
2/  =  1d4  1d1  x  1d3
2/  0  1d4  1d1  x  1d4
2/  <  1d4  1d1  x  1d4
2/  >  1d4  1d1  x  1d3
! M + Q = 6.
2/  =  1d4  1d2  x  1d2
2/  0  1d4  1d2  x  1d3
2/  <  1d4  1d2  x  1d3
2/  >  1d4  1d2  x  1d2
! M + Q = 7.
2/  =  1d4  1d3  x  1d1
2/  0  1d4  1d3  x  1d2
2/  <  1d4  1d3  x  1d2
2/  >  1d4  1d3  x  1d1
! M + Q = 11.
2/  =  1d8  1d3  x  1d5
2/  0  1d8  1d3  x  1d6
2/  <  1d8  1d3  x  1d6
2/  >  1d8  1d3  x  1d5
2/  =  1d9  1d2  x  1d7
2/  0  1d9  1d2  x  1d8
2/  <  1d9  1d2  x  1d8
2/  >  1d9  1d2  x  1d7
! M + Q = 12.
2/  =  1d8  1d4  x  1d4
2/  0  1d8  1d4  x  1d5
2/  <  1d8  1d4  x  1d5
2/  >  1d8  1d4  x  1d4
! M + Q = 14.
2/  =  1d9  1d5  x  1d4
2/  0  1d9  1d5  x  1d5
2/  <  1d9  1d5  x  1d5
2/  >  1d9  1d5  x  1d4
! (1 - Mulp-) / (1 - Nulp-) -->
! Case M < Q: (1 - (M/2)ulp+) *
! (1 + (Q/2)ulp+ +
!  ((Q/2)ulp+)^2 + tiny) -->
! 1 + ((Q-M)/2)ulp+ +
!  (NN-MN)/4(ulp+)^2 + tiny -->
! 1 + (Q-M)/2ulp+ + tiny.
! M + Q = 3.
2/  =  1d1  1d2  x  1i1
2/  0  1d1  1d2  x  1
2/  <  1d1  1d2  x  1
2/  >  1d1  1d2  x  1i1
! M + Q = 4.
2/  =  1d1  1d3  x  1i1
2/  0  1d1  1d3  x  1i1
2/  <  1d1  1d3  x  1i1
2/  >  1d1  1d3  x  1i2
! M + Q = 5.
2/  =  1d2  1d3  x  1i1
2/  0  1d2  1d3  x  1
2/  <  1d2  1d3  x  1
2/  >  1d2  1d3  x  1i1
2/  =  1d1  1d4  x  1i2
2/  0  1d1  1d4  x  1i1
2/  <  1d1  1d4  x  1i1
2/  >  1d1  1d4  x  1i2
! M + Q = 6.
2/  =  1d2  1d4  x  1i1
2/  0  1d2  1d4  x  1i1
2/  <  1d2  1d4  x  1i1
2/  >  1d2  1d4  x  1i2
! M + Q = 7.
2/  =  1d3  1d4  x  1i1
2/  0  1d3  1d4  x  1
2/  <  1d3  1d4  x  1
2/  >  1d3  1d4  x  1i1
! M + Q = 8.
2/  =  1d1  1d7  x  1i3
2/  0  1d1  1d7  x  1i3
2/  <  1d1  1d7  x  1i3
2/  >  1d1  1d7  x  1i4
! M + Q = 9.
2/  =  1d2  1d7  x  1i3
2/  0  1d2  1d7  x  1i2
2/  <  1d2  1d7  x  1i2
2/  >  1d2  1d7  x  1i3
! M + Q = 10.
2/  =  1d3  1d7  x  1i2
2/  0  1d3  1d7  x  1i2
2/  <  1d3  1d7  x  1i2
2/  >  1d3  1d7  x  1i3
! M + Q = 11.
2/  =  1d4  1d7  x  1i2
2/  0  1d4  1d7  x  1i1
2/  <  1d4  1d7  x  1i1
2/  >  1d4  1d7  x  1i2
! M + Q = 12.
2/  =  1d5  1d7  x  1i1
2/  0  1d5  1d7  x  1i1
2/  <  1d5  1d7  x  1i1
2/  >  1d5  1d7  x  1i2
! M + Q = 13.
2/  =  1d6  1d7  x  1i1
2/  0  1d6  1d7  x  1
2/  <  1d6  1d7  x  1
2/  >  1d6  1d7  x  1i1
! (1 + Mulp+) / (1 - Nulp-) -->
! (1 + Mulp+) * (1 + (Q/2)ulp+ +
!  ((Q/2)ulp+)^2 + tiny) -->
! 1 + (M + Q/2)ulp+ + tiny.
! M + Q = 2.
2/  =  1i1  1d1  x  1i2
2/  0  1i1  1d1  x  1i1
2/  <  1i1  1d1  x  1i1
2/  >  1i1  1d1  x  1i2
! M + Q = 3.
2/  =  1i1  1d2  x  1i2
2/  0  1i1  1d2  x  1i2
2/  <  1i1  1d2  x  1i2
2/  >  1i1  1d2  x  1i3
2/  =  1i2  1d1  x  1i3
2/  0  1i2  1d1  x  1i2
2/  <  1i2  1d1  x  1i2
2/  >  1i2  1d1  x  1i3
! M + Q = 4.
2/  =  1i1  1d3  x  1i3
2/  0  1i1  1d3  x  1i2
2/  <  1i1  1d3  x  1i2
2/  >  1i1  1d3  x  1i3
2/  =  1i3  1d1  x  1i4
2/  0  1i3  1d1  x  1i3
2/  <  1i3  1d1  x  1i3
2/  >  1i3  1d1  x  1i4
2/  =  1i2  1d2  x  1i3
2/  0  1i2  1d2  x  1i3
2/  <  1i2  1d2  x  1i3
2/  >  1i2  1d2  x  1i4
! M + Q = 5.
2/  =  1i3  1d2  x  1i4
2/  0  1i3  1d2  x  1i4
2/  <  1i3  1d2  x  1i4
2/  >  1i3  1d2  x  1i5
2/  =  1i2  1d3  x  1i4
2/  0  1i2  1d3  x  1i3
2/  <  1i2  1d3  x  1i3
2/  >  1i2  1d3  x  1i4
! M + Q = 6.
2/  =  1i3  1d3  x  1i5
2/  0  1i3  1d3  x  1i4
2/  <  1i3  1d3  x  1i4
2/  >  1i3  1d3  x  1i5
2/  =  1i1  1d5  x  1i4
2/  0  1i1  1d5  x  1i3
2/  <  1i1  1d5  x  1i3
2/  >  1i1  1d5  x  1i4
2/  =  1i5  1d1  x  1i6
2/  0  1i5  1d1  x  1i5
2/  <  1i5  1d1  x  1i5
2/  >  1i5  1d1  x  1i6
2/  =  1i2  1d4  x  1i4
2/  0  1i2  1d4  x  1i4
2/  <  1i2  1d4  x  1i4
2/  >  1i2  1d4  x  1i5
2/  =  1i4  1d2  x  1i5
2/  0  1i4  1d2  x  1i5
2/  <  1i4  1d2  x  1i5
2/  >  1i4  1d2  x  1i6
! (1 - Mulp-) / (1 + Nulp+) -->
! (1 - Mulp-) * (1 - 2Nulp- +
!  (2Nulp-)^2 - tiny) -->
! 1 - (M + 2N)ulp- + tiny.
! M + Q = 2.
2/  =  1d1  1i1  x  1d3
2/  0  1d1  1i1  x  1d3
2/  <  1d1  1i1  x  1d3
2/  >  1d1  1i1  x  1d2
! M + Q = 3.
2/  =  1d2  1i1  x  1d4
2/  0  1d2  1i1  x  1d4
2/  <  1d2  1i1  x  1d4
2/  >  1d2  1i1  x  1d3
2/  =  1d1  1i2  x  1d5
2/  0  1d1  1i2  x  1d5
2/  <  1d1  1i2  x  1d5
2/  >  1d1  1i2  x  1d4
! M + Q = 4.
2/  =  1d3  1i1  x  1d5
2/  0  1d3  1i1  x  1d5
2/  <  1d3  1i1  x  1d5
2/  >  1d3  1i1  x  1d4
2/  =  1d1  1i3  x  1d7
2/  0  1d1  1i3  x  1d7
2/  <  1d1  1i3  x  1d7
2/  >  1d1  1i3  x  1d6
2/  =  1d2  1i2  x  1d6
2/  0  1d2  1i2  x  1d6
2/  <  1d2  1i2  x  1d6
2/  >  1d2  1i2  x  1d5
! M + Q = 5.
2/  =  1d4  1i1  x  1d6
2/  0  1d4  1i1  x  1d6
2/  <  1d4  1i1  x  1d6
2/  >  1d4  1i1  x  1d5
2/  =  1d1  1i4  x  1d9
2/  0  1d1  1i4  x  1d9
2/  <  1d1  1i4  x  1d9
2/  >  1d1  1i4  x  1d8
2/  =  1d3  1i2  x  1d7
2/  0  1d3  1i2  x  1d7
2/  <  1d3  1i2  x  1d7
2/  >  1d3  1i2  x  1d6
2/  =  1d2  1i3  x  1d8
2/  0  1d2  1i3  x  1d8
2/  <  1d2  1i3  x  1d8
2/  >  1d2  1i3  x  1d7
! Nan operands.
2/  ALL  Q  0  OK  Q
2/  ALL  Q  -0  OK  Q
2/  ALL  0  Q  OK  Q
2/  ALL  -0  Q  OK  Q
2/  ALL  Q  1  OK  Q
2/  ALL  Q  -1  OK  Q
2/  ALL  1  Q  OK  Q
2/  ALL  -1  Q  OK  Q
2/  ALL  Ed1  Q  OK  Q
2/  ALL  -Ed1 Q  OK  Q
2/  ALL  Q  Ed1  OK  Q
2/  ALL  Q  -Ed1 OK  Q
2/  ALL  Q  0i1  OK  Q
2/  ALL  Q  -0i1  OK  Q
2/  ALL  0i1  Q  OK  Q
2/  ALL  -0i1  Q  OK  Q
2/  ALL  Q  Hd1  OK  Q
2/  ALL  Q  -Hd1 OK  Q
2/  ALL  Hd1  Q  OK  Q
2/  ALL  -Hd1 Q  OK  Q
2/  ALL  Q  H  OK  Q
2/  ALL  Q  -H  OK  Q
2/  ALL  H  Q  OK  Q
2/  ALL  -H  Q  OK  Q
2/  ALL  Q  Q  OK  Q
2/  ALL  S  0  i  Q
2/  ALL  S  -0  i  Q
2/  ALL  0  S  i  Q
2/  ALL  -0  S  i  Q
2/  ALL  S  1  i  Q
2/  ALL  S  -1  i  Q
2/  ALL  1  S  i  Q
2/  ALL  -1  S  i  Q
2/  ALL  Ed1  S  i  Q
2/  ALL  -Ed1 S  i  Q
2/  ALL  S  Ed1  i  Q
2/  ALL  S  -Ed1 i  Q
2/  ALL  S  0i1  i  Q
2/  ALL  S  -0i1  i  Q
2/  ALL  0i1  S  i  Q
2/  ALL  -0i1  S  i  Q
2/  ALL  S  Hd1  i  Q
2/  ALL  S  -Hd1 i  Q
2/  ALL  Hd1  S  i  Q
2/  ALL  -Hd1 S  i  Q
2/  ALL  S  H  i  Q
2/  ALL  S  -H  i  Q
2/  ALL  H  S  i  Q
2/  ALL  -H  S  i  Q
2/  ALL  Q  S  i  Q
2/  ALL  S  Q  i  Q
2/  ALL  S  S  i  Q
!
! Test vectors for the fraction part
! of number as if with infinite range.
!
! Mid-range.
2F  ALL  1  0  OK  1
2F  ALL  -1  0  OK  -1
2F  ALL  2  0  OK  1
2F  ALL  3  0  OK  3m1
2F  ALL  4  0  OK  1
2F  ALL  5  0  OK  5m2
2F  ALL  6  0  OK  6m2
2F  ALL  7  0  OK  7m2
2F  ALL  -7  0  OK  -7m2
2F  ALL  8  0  OK  1
2F  ALL  9  0  OK  9m3
2F  ALL  1i1  0  OK  1i1
2F  ALL  2i1  0  OK  1i1
2F  ALL  3i1  0  OK  3m1i1
2F  ALL  4i1  0  OK  1i1
2F  ALL  5i1  0  OK  5m2i1
2F  ALL  6i1  0  OK  6m2i1
2F  ALL  7i1  0  OK  7m2i1
2F  ALL  8i1  0  OK  1i1
2F  ALL  9i1  0  OK  9m3i1
2F  ALL  -9i1  0  OK  -9m3i1
2F  ALL  1d1  0  OK  2d1
2F  ALL  2d1  0  OK  2d1
2F  ALL  3d1  0  OK  3d1m1
2F  ALL  4d1  0  OK  2d1
2F  ALL  5d1  0  OK  5d1m2
2F  ALL  6d1  0  OK  6d1m2
2F  ALL  7d1  0  OK  7d1m2
2F  ALL  8d1  0  OK  2d1
2F  ALL  -8d1  0  OK  -2d1
2F  ALL  9d1  0  OK  9d1m3
! Small.
2F  ALL  E  0  OK  1
2F  ALL  -E  0  OK  -1
2F  ALL  Ei1  0  OK  1i1
2F  ALL  Ed1  0  OK  2d2
2F  ALL  Ei8  0  OK  1i8
2F  ALL  Ed4  0  OK  2d8
2F  ALL  0i1  0  OK  1
2F  ALL  -0i1  0  OK  -1
2F  ALL  0i8  0  OK  1
2F  ALL  0i9  0  OK  9m3
2F  ALL  Ep1d1  0  OK  2d1
2F  ALL  Ep1d9  0  OK  2d9
2F  ALL  Ep1i1  0  OK  1i1
! Large.
2F  ALL  Hm1  0  OK  1
2F  ALL  Hd1  0  OK  2d1
2F  ALL  -Hm1  0  OK  -1
2F  ALL  -Hd1  0  OK  -2d1
2F  ALL  Hd9  0  OK  2d9
2F  ALL  Hm1i1  0  OK  1i1
2F  ALL  Hm1i8  0  OK  1i8
2F  ALL  Hm1d1  0  OK  2d1
! LogB test vectors
2L  ALL  1  0  OK  0
2L  ALL  2  0  OK  1
2L  ALL  -2  0  OK  1
2L  ALL  3  0  OK  1
2L  ALL  4  0  OK  2
2L  ALL  5  0  OK  2
2L  ALL  6  0  OK  2
2L  ALL  7  0  OK  2
2L  ALL  8  0  OK  3
2L  ALL  9  0  OK  3
2L  ALL  1p9  0  OK  9
2L  ALL  2p8  0  OK  9
2L  ALL  3p8  0  OK  9
2L  ALL  -3p8  0  OK  9
2L  ALL  4p7  0  OK  9
2L  ALL  5p7  0  OK  9
2L  ALL  6p7  0  OK  9
2L  ALL  7p7  0  OK  9
2L  ALL  8p6  0  OK  9
2L  ALL  9p6  0  OK  9
2L  ALL  1p9d1  0  OK  8
2L  ALL  2p8d1  0  OK  8
2L  ALL  3p8d1  0  OK  9
2L  ALL  4p7d1  0  OK  8
2L  ALL  -4p7d1  0  OK  8
2L  ALL  5p7d1  0  OK  9
2L  ALL  6p7d1  0  OK  9
2L  ALL  7p7d1  0  OK  9
2L  ALL  8p6d1  0  OK  8
2L  ALL  9p6d1  0  OK  9
2L  ALL  1m1  0  OK  -1
2L  ALL  3m1  0  OK  0
2L  ALL  3m2  0  OK  -1
2L  ALL  9m1  0  OK  2
2L  ALL  9m2  0  OK  1
2L  ALL  9m3  0  OK  0
2L  ALL  9m4  0  OK  -1
2L  ALL  9m5  0  OK  -2
2L  ALL  9m6  0  OK  -3
2L  ALL  -9m6  0  OK  -3
2L  ALL  9m7  0  OK  -4
2L  ALL  9m8  0  OK  -5
2L  ALL  1d1  0  OK  -1
2L  ALL  2d1  0  OK  0
2L  ALL  3d1  0  OK  1
2L  ALL  4d1  0  OK  1
2L  ALL  5d1  0  OK  2
2L  ALL  6d1  0  OK  2
2L  ALL  7d1  0  OK  2
2L  ALL  8d1  0  OK  2
2L  ALL  -8d1  0  OK  2
2L  ALL  9d1  0  OK  3
2L  ALL  1m1d1  0  OK  -2
2L  ALL  3m1d1  0  OK  0
2L  ALL  3m2d1  0  OK  -1
2L  ALL  9m1d1  0  OK  2
2L  ALL  9m2d1  0  OK  1
2L  ALL  9m3d1  0  OK  0 
2L  ALL  9m4d1  0  OK  -1
2L  ALL  9m5d1  0  OK  -2
2L  ALL  9m6d1  0  OK  -3
2L  ALL  9m7d1  0  OK  -4
2L  ALL  9m8d1  0  OK  -5
2L  ALL  -9m7d1  0  OK  -4
2L  ALL  1p8p8  0  OK  1p4
2L  ALL  1p8p8p8p8 0  OK  1p5
2L  ALL  1p8p8p8p8p8p8p8p8 0 OK  1p6
2L  ALL  1p8p8p8p8p8p8p8p8i9 0 OK  1p6
2L  ALL  -1p8p8p8p8p8p8p8p8i9 0 OK  1p6
2L  ALL  1m8m8  0  OK  -1p4
2L  ALL  1m8m8m8m8 0  OK  -1p5
2L  ALL  1m8m8m8m8m8m8m8m8 0 OK  -1p6
2L  ALL  1m8m8m8m8m8m8m8m8i9 0 OK  -1p6
2L  ALL  -1m8m8m8m8m8m8m8m8i9 0 OK  -1p6
! Exceptional cases.
2L  ALL  Q  0  OK  Q
2L  ALL  S  0  i  Q
2L  ALL  H  0  OK  H
2L  ALL  -H  0  OK  H
2L  ALL  0  0  z  -H
2L  ALL  -0  0  z  -H
! First some easy tests for consistency.
2*  ALL  1  1  OK  1
2*  ALL  1  2  OK  2
2*  ALL  2  1  OK  2
2*  ALL  2  3  OK  6
2*  ALL  3  2  OK  6
2*  ALL  3  3  OK  9
! Check out sign manipulation.
2*  ALL  -1  1  OK  -1
2*  ALL  -1  2  OK  -2
2*  ALL  2  -1  OK  -2
2*  ALL  -2  3  OK  -6
2*  ALL  3  -2  OK  -6
2*  ALL  -3  3  OK  -9
2*  ALL  -1  -1  OK  1
2*  ALL  -1  -2  OK  2
2*  ALL  -2  -1  OK  2
2*  ALL  -2  -3  OK  6
2*  ALL  -3  -2  OK  6
2*  ALL  -3  -3  OK  9
! Some zero tests, round mode is
! irrelevant.
2*  ALL  0  0  OK  0
2*  ALL  -0  0  OK  -0
2*  ALL  0  -0  OK  -0
2*  ALL  -0  -0  OK  0
! Infinity tests, round mode
! irrelevant.
2*  ALL  H  H  OK  H
2*  ALL  -H  H  OK  -H
2*  ALL  H  -H  OK  -H
2*  ALL  -H  -H  OK  H
! Inf * 0 -- always bad news.
2*  ALL  H  0  i  Q
2*  ALL  -0  H  i  -Q
2*  ALL  H  -0  i  -Q
2*  ALL  -0  -H  i  Q
! Inf * small_integer -> Inf.
2*  ALL  H  1  OK  H
2*  ALL  -2  H  OK  -H
2*  ALL  H  -3  OK  -H
2*  ALL  -4  -H  OK  H
2*  ALL  5  H  OK  H
2*  ALL  -H  6  OK  -H
2*  ALL  7  -H  OK  -H
2*  ALL  -H  -8  OK  H
! Inf * huge -> Inf.
2*  ALL  Hm1  H  OK  H
2*  ALL  -Hm2  H  OK  -H
2*  ALL  H  -Hm1  OK  -H
2*  ALL  -H  -Hm2  OK  H
2*  ALL  H  Hm1d1  OK  H
2*  ALL  -Hm2d1  H  OK  -H
2*  ALL  H  -Hd1  OK  -H
2*  ALL  -Hd1  -H  OK  H
! Inf * tiny -> Inf.
2*  ALL  E  H  OK  H
2*  ALL  -Ep1  H  OK  -H
2*  ALL  H  -Ep1  OK  -H
2*  ALL  -H  -E  OK  H
2*  ALL  H  Ep1d1  OK  H
2*  ALL  -Ei1  H  OK  -H
2*  ALL  H  -Ei1  OK  -H
2*  ALL  -Ep1d1  -H  OK  H
! Inf * denormalized -> Inf.
2*  ALL  0i1  H  OK  H
2*  ALL  -0i3  H  OK  -H
2*  ALL  H  -0i2  OK  -H
2*  ALL  -H  -0i4  OK  H
2*  ALL  H  Ed1  OK  H
2*  ALL  -Ed1  H  OK  -H
2*  ALL  H  -Ed1  OK  -H
2*  ALL  -Ed1  -H  OK  H
! 0 * small_integer -> 0.
2*  ALL  0  1  OK  0
2*  ALL  -2  0  OK  -0
2*  ALL  0  -3  OK  -0
2*  ALL  -4  -0  OK  0
2*  ALL  5  0  OK  0
2*  ALL  -0  6  OK  -0
2*  ALL  7  -0  OK  -0
2*  ALL  -0  -8  OK  0
! 0 * huge -> 0.
2*  ALL  Hm1  0  OK  0
2*  ALL  -Hm2  0  OK  -0
2*  ALL  0  -Hm1  OK  -0
2*  ALL  -0  -Hm2  OK  0
2*  ALL  0  Hm1d1  OK  0
2*  ALL  -Hm2d1  0  OK  -0
2*  ALL  0  -Hm2d1  OK  -0
2*  ALL  -Hm1d1  -0  OK  0
2*  ALL  Hd1  0  OK  0
2*  ALL  -Hd1  -0  OK  0
2*  ALL  0  -Hd1 OK  -0
2*  ALL  -0  Hd1  OK  -0
! 0 * tiny -> 0.
2*  ALL  E  0  OK  0
2*  ALL  -Ep1  0  OK  -0
2*  ALL  0  -Ep1  OK  -0
2*  ALL  -0  -E  OK  0
2*  ALL  0  Ep1d1  OK  0
2*  ALL  -Ei1  0  OK  -0
2*  ALL  0  -Ei1  OK  -0
2*  ALL  -Ep1d1  -0  OK  0
! 0 * denormalized -> 0.
2*  ALL  0i1  0  OK  0
2*  ALL  -0i3  0  OK  -0
2*  ALL  0  -0i2  OK  -0
2*  ALL  -0  -0i4  OK  0
2*  ALL  0  Ed1  OK  0
2*  ALL  -Ed1  0  OK  -0
2*  ALL  0  -Ed1  OK  -0
2*  ALL  -Ed1  -0  OK  0
! Exact cases huge and 2.
2*  ALL  2  Hm2  OK  Hm1
2*  ALL  Hm2  -2  OK  -Hm1
2*  ALL  -2  Hm2d1  OK  -Hm1d1
2*  ALL  2  -Hm2d3  OK  -Hm1d3
2*  ALL  2  Hm2  OK  Hm1
2*  ALL  Hm2  -2  OK  -Hm1
2*  ALL  -2  Hm2d1  OK  -Hm1d1
2*  ALL  2  -Hm2d3  OK  -Hm1d3
2*  ALL  2  Hm1d1  OK  Hd1
2*  ALL  Hm1d1  -2  OK  -Hd1
2*  ALL  -2  Hm2i1  OK  -Hm1i1
2*  ALL  2  -Hm2i3  OK  -Hm1i3
2*  ALL  2  Hm1d1  OK  Hd1
2*  ALL  Hm1d1  -2  OK  -Hd1
2*  ALL  -2  Hm2i1  OK  -Hm1i1
2*  ALL  2  -Hm2i3  OK  -Hm1i3
! Exact cases huge and 4.
2*  ALL  4  Hm2d1  OK  Hd1
2*  ALL  -4  Hm2d1  OK  -Hd1
2*  ALL  4  -Hm2d1  OK  -Hd1
2*  ALL  -4  -Hm2d1  OK  Hd1
2*  ALL  4  Hm2d1  OK  Hd1
2*  ALL  -4  Hm2d1  OK  -Hd1
2*  ALL  4  -Hm2d1  OK  -Hd1
2*  ALL  -4  -Hm2d1  OK  Hd1
2*  ALL  Hm2d3  4  OK  Hd3
2*  ALL  Hm2d3  -4  OK  -Hd3
2*  ALL  -Hm2d3  4  OK  -Hd3
2*  ALL  -Hm2d3  -4  OK  Hd3
2*  ALL  Hm2d3  4  OK  Hd3
2*  ALL  Hm2d3  -4  OK  -Hd3
2*  ALL  -Hm2d3  4  OK  -Hd3
2*  ALL  -Hm2d3  -4  OK  Hd3
! Exact cases tiny and 2.
2*  ALL  2  E  OK  Ep1
2*  ALL  E  -2  OK  -Ep1
2*  ALL  -2  Ei1  OK  -Ep1i1
2*  ALL  2  -Ei3  OK  -Ep1i3
2*  ALL  2  E  OK  Ep1
2*  ALL  E  -2  OK  -Ep1
2*  ALL  -2  Ei9  OK  -Ep1i9
2*  ALL  2  -Ei5  OK  -Ep1i5
2*  ALL  2  Ei1  OK  Ep1i1
2*  ALL  Ei1  -2  OK  -Ep1i1
2*  ALL  -2  Ei5  OK  -Ep1i5
2*  ALL  2  -Ei3  OK  -Ep1i3
2*  ALL  2  Ei1  OK  Ep1i1
2*  ALL  Ei1  -2  OK  -Ep1i1
2*  ALL  -2  Ei5  OK  -Ep1i5
2*  ALL  2  -Ei3  OK  -Ep1i3
! Just below denormalization threshold.
2*  ALL  Ed1  2  OK  Ep1d2
2*  ALL  -2  Ed3  OK  -Ep1d6
2*  ALL  -Ed3  -2  OK  Ep1d6
2*  ALL  -2  Ed3  OK  -Ep1d6
2*  ALL  Ed4  2  OK  Ep1d8
2*  ALL  2  -Ed3  OK  -Ep1d6
! Normalizing tinies.
2*  ALL  0i1  2  OK  0i2
2*  ALL  3  0i2  OK  0i6
2*  ALL  -0i1  5  OK  -0i5
2*  ALL  1  -0i9  OK  -0i9
2*  ALL  -0i4  -1  OK  0i4
2*  ALL  4  0i2  OK  0i8
2*  ALL  0i1  2  OK  0i2
2*  ALL  3  0i2  OK  0i6
2*  ALL  -0i1  5  OK  -0i5
2*  ALL  1  -0i9  OK  -0i9
2*  ALL  -0i4  -1  OK  0i4
2*  ALL  4  0i2  OK  0i8
2*  ALL  0i1  2  OK  0i2
2*  ALL  3  0i2  OK  0i6
2*  ALL  -0i1  5  OK  -0i5
2*  ALL  1  -0i9  OK  -0i9
2*  ALL  -0i4  -1  OK  0i4
2*  ALL  4  0i2  OK  0i8
2*  ALL  0i1  2  OK  0i2
2*  ALL  3  0i2  OK  0i6
2*  ALL  -0i1  5  OK  -0i5
2*  ALL  1  -0i9  OK  -0i9
2*  ALL  -0i4  -1  OK  0i4
2*  ALL  4  0i2  OK  0i8
! 1.0 * various.
2*  ALL  1  Ep1i3  OK  Ep1i3
2*  ALL  -Ep1d2  1  OK  -Ep1d2
2*  ALL  -1  Ei9  OK  -Ei9
2*  ALL  -Ei1  -1  OK  Ei1
2*  ALL  1  Ep1i3  OK  Ep1i3
2*  ALL  -Ep1d2  1  OK  -Ep1d2
2*  ALL  -1  Ei9  OK  -Ei9
2*  ALL  -Ei1  -1  OK  Ei1
2*  ALL  1  Ed3  OK  Ed3
2*  ALL  -0i2  1  OK  -0i2
2*  ALL  -1  0i9  OK  -0i9
2*  ALL  -Ed1  -1  OK  Ed1
2*  ALL  1  Ed3  OK  Ed3
2*  ALL  -0i2  1  OK  -0i2
2*  ALL  -1  0i9  OK  -0i9
2*  ALL  -Ed1  -1  OK  Ed1
! Now some tricky rounding cases involving
! 1.0 with some ulps.
! result = 1.00000...010|000...0001
2*  =0<  1i1  1i1  x  1i2
2*  >  1i1  1i1  x  1i3
! Try signs...
2*  =0>  -1i1  1i1  x  -1i2
2*  <  -1i1  1i1  x  -1i3
2*  =0>  1i1  -1i1  x  -1i2
2*  <  1i1  -1i1  x  -1i3
2*  =0<  -1i1  -1i1  x  1i2
2*  >  -1i1  -1i1  x  1i3
! result = 1.0000..011|0000100
2*  =0<  1i2  1i1  x  1i3
2*  >  1i2  1i1  x  1i4
! Try signs...
2*  =0>  -1i2  1i1  x  -1i3
2*  <  -1i2  1i1  x  -1i4
2*  =0>  1i1  -1i2  x  -1i3
2*  <  1i1  -1i2  x  -1i4
2*  =0<  -1i2  -1i1  x  1i3
2*  >  -1i1  -1i2  x  1i4
2*  >  -1i2  -1i1  x  1i4
2*  =0<  -1i1  -1i2  x  1i3
! (m + k ulps of m) * (1 + j ulps of 1)
! = m + (k + m*j/2^floor(log m)) ulps
! of m + tiny.
2*  =>  3i1  1i1  x  3i3
2*  0<  3i1  1i1  x  3i2
2*  >=  3i1  1i3  x  3i6
2*  0<  3i1  1i3  x  3i5
2*  =<  -3i1  1i1  x  -3i3
2*  0>  -3i1  1i1  x  -3i2
2*  <=  3i1  -1i3  x  -3i6
2*  0>  3i1  -1i3  x  -3i5
2*  >  5i1  1i1  x  5i3
2*  =0<  5i1  1i1  x  5i2
2*  >  -5i1  -1i1  x  5i3
2*  =0<  -5i1  -1i1  x  5i2
2*  >=  7i1  1i1  x  7i3
2*  <0  7i1  1i1  x  7i2
2*  0<=  3d1  1d1  x  3d2
2*  >  3d1  1d1  x  3d1
2*  0<  3d1  1d3  x  3d4
2*  =>  3d1  1d3  x  3d3
2*  0>=  -3d1  1d1  x  -3d2
2*  <  -3d1  1d1  x  -3d1
2*  0>  3d1  -1d3  x  -3d4
2*  =<  3d1  -1d3  x  -3d3
2*  =>  3d1  1d2  x  3d2
2*  0<  3d1  1d2  x  3d3
2*  0<=  5d1  1d1  x  5d2
2*  >  5d1  1d1  x  5d1
2*  0<=  -5d1  -1d1  x  5d2
2*  >  -5d1  -1d1  x  5d1
2*  <=0  7d1  1d1  x  7d2
2*  >  7d1  1d1  x  7d1
2*  =>  7d1  1d4  x  7d4
2*  0<  7d1  1d4  x  7d5
! Some overflow conditions, watching
! round mode.
2*  =>  Hm1  2  ox  H
2*  0<  Hm1  2i1  ox  Hd1
2*  =<  -3d2  Hm1  ox  -H
2*  0>  Hm1  -4i5  ox  -Hd1
2*  =>  -5d2  -Hm1  ox  H
2*  0<  Hm1  6i1  ox  Hd1
2*  =<  -7d7  Hm1  ox  -H
2*  0>  Hm1  -8i3  ox  -Hd1
2*  =>  -9i1  -Hm1  ox  H
2*  0<  Hm1  6  ox  Hd1
2*  =<  -9  Hm1  ox  -H
2*  0>  Hm1  -2  ox  -Hd1
2*  0<  -7  -Hm1  ox  Hd1
2*  =>  Hm1  2  ox  H
2*  0>  -5  Hm1  ox  -Hd1
2*  0>  Hm1  -2  ox  -Hd1
2*  =>  -3  -Hm1  ox  H
! Heavy overflow conditions,
! watching round mode.
2*  =>  Hm1  Hm1  xo  H
2*  =<  -Hd3  Hm1  xo  -H
2*  =<  Hm1  -Hm2i4  xo  -H
2*  =>  -Hm1i5  -Hm1i1  ox  H
2*  =>  Hm1i9  Hd6  xo  H
2*  =<  -Hm2d7  Hm1  xo  -H
2*  =<  Hm1  -Hm2  xo  -H
2*  =>  -Hd1  -Hd1  xo  H
2*  0<  Hm1  Hm2i6  xo  Hd1
2*  =<  -Hm1d9  Hm2i1  xo  -H
2*  =<  Hm1  -Hm1  xo  -H
2*  0<  -Hm2d7  -Hd1  xo  Hd1
2*  =>  Hm1  Hd2  xo  H
2*  0>  -Hm2  Hm1  xo  -Hd1
2*  0>  Hm1i9  -Hm2i2  xo  -Hd1
2*  =>  -Hd3  -Hm1i1  xo  H
! Mixed bag overflow conditions,
! watching round mode.  Tricky cases
! require careful look at power series
! expansion.  Example --  -Hmd1 * 1i1:
! In single...
!  -(2^127 (1 - 2^-24)) * (1 + 2^-23) -->
!  -( 2^127 (1 + 2^-24 - 2^-47) ) -->
!  -2^127 except when rounding <, in which
!  case -( 2^127 (1 + 2^-23) ); that is,
!  -Hm or -Hmi1, respectively!
2*  =0>  -Hm1d1  1i1  x  -Hm1
2*  <  -Hm1d1  1i1  x  -Hm1i1
2*  =0<  -1d1  -Hd1  x  Hd2
2*  >  -1d1  -Hd1  x  Hd1
2*  <  -Hm2d1  2i1  x  -Hm1i1
2*  =0>  -Hm2d1  2i1  x  -Hm1
2*  <=  Hm1d3  -2i8  xo  -H
2*  >0  Hm1d3  -2i8  xo  -Hd1
2*  =0<  -Hm2d7  -4d1  x  Hd8
2*  >  -Hm2d7  -4d1  x  Hd7
2*  =>  1i2  Hd2  xo  H
2*  0<  1i2  Hd2  xo  Hd1
2*  =<  Hm1i9  -6i2  xo  -H
2*  0>  Hm1i9  -6i2  xo  -Hd1
2*  =>  -Hd3  -3i1  xo  H
2*  0<  -Hd3  -3i1  xo  Hd1
! Exact and below denomalization threshold -- no underflow.
2*  ALL  E  1d2  OK  Ed1
2*  ALL  0i1  1  OK  0i1
2*  ALL  1  -0i1  OK  -0i1
2*  ALL  Ep1d2  1m1  OK  Ed1
2*  ALL  -Ep1d4  -1m1  OK  Ed2
2*  ALL  Ep1d2  -1m1  OK  -Ed1
2*  ALL  -Ep1d4  1m1  OK  -Ed2
2*  ALL  Ep1d8  1m1  OK  Ed4
2*  ALL  0i8  1m3  OK  0i1
2*  ALL  0i6  1m1  OK  0i3
2*  ALL  -0i8  1m3  OK  -0i1
2*  ALL  0i6  -1m1  OK  -0i3
! Inexact, extreme underflows.
2*  =0<  E  E  xu  0
2*  =0<  -E  -E  xu  0
2*  >  E  Ep1  xu  0i1
2*  >  -Ep1  -Ep1  xu  0i1
2*  =0>  -E  E  xu  -0
2*  =0>  E  -E  xu  -0
2*  <  -E  Ep1  xu  -0i1
2*  <  E  -E  xu  -0i1
2*  =0<  Ed1  Ed2  xu  0
2*  =0<  -Ed1  -Ed2  xu  0
2*  >  Ed1  Ed2  xu  0i1
2*  >  -Ed1  -Ed2  xu  0i1
2*  =0>  -Ed9  Ep1i3  xu  -0
2*  =0>  Ed9  -Ep1i3  xu  -0
2*  <  -Ed9  Ep1i3  xu  -0i1
2*  <  Ed9  -Ep1i3  xu  -0i1
2*  >  0i1  1m1  xu  0i1
2*  =0<  0i1  1m1  xu  0
2*  <  1m1  -0i1  xu  -0i1
2*  =0>  1m1  -0i1  xu  -0
2*  <0  0i1  1d1  xu  0
2*  =>  0i1  1d1  xu  0i1
2*  >  0i1  0i1  xu  0i1
2*  =0<  0i1  0i1  xu  0
2*  >0  -0i1  1d1  xu  -0
2*  =<  0i1  -1d1  xu  -0i1
2*  <  0i1  -0i1  xu  -0i1
2*  =0>  -0i1  0i1  xu  -0
! Underflow, barely.
2*  0<  Ep1d1  1m1  xu  Ed1
2*  0<  -Ep1d1  -1m1  xu  Ed1
2*  0>  -Ep1d1  1m1  xu  -Ed1
2*  >=  Ep1d1  1m1  xu  E
2*  <=  Ep1d1  -1m1  xu  -E
2*  0<  Ed1  1i1  xu  Ed1
2*  0>  Ed1  -1i1  xu  -Ed1
2*  0<  Ei1  1d6  xu  Ed3
2*  >  Ed2  1d4  xu  Ed3
2*  0<  Ed4  1i1  xu  Ed4
2*  0<  Ei1  1d2  xu  Ed1
! Underflow, unless detected as accuracy
! loss due to denormalization.
2*  >=  Ed2  1i1  xv  Ed1
2*  <=  Ed2  -1i1  xv  -Ed1
2*  >=  Ed8  1i1  xv  Ed7
2*  <=  -Ed9  1i1  xv  -Ed8
2*  <=  Ed8  -1i1  xv  -Ed7
2*  =>  Ei1  1d6  xv  Ed2
2*  <=0  Ed2  1d4  xv  Ed4
! Underflow, only if tininess is detected
! before rounding.
2*  >=  Ed1  1i1  xw  E
2*  <=  -Ed1  1i1  xw  -E
2*  >=  Ed8  1i8  xw  E
2*  <=  Ed8  -1i8  xw  -E
2*  >=  Ei1  1d2  xw  E
2*  >=  Ei2  1d4  xw  E
! NaN operands.
2*  ALL  Q  0  OK  Q
2*  ALL  Q  -0  OK  Q
2*  ALL  0  Q  OK  Q
2*  ALL  -0  Q  OK  Q
2*  ALL  Q  1  OK  Q
2*  ALL  Q  -1  OK  Q
2*  ALL  1  Q  OK  Q
2*  ALL  -1  Q  OK  Q
2*  ALL  Ed1  Q  OK  Q
2*  ALL  -Ed1 Q  OK  Q
2*  ALL  Q  Ed1  OK  Q
2*  ALL  Q  -Ed1 OK  Q
2*  ALL  Q  0i1  OK  Q
2*  ALL  Q  -0i1  OK  Q
2*  ALL  0i1  Q  OK  Q
2*  ALL  -0i1  Q  OK  Q
2*  ALL  Q  Hd1  OK  Q
2*  ALL  Q  -Hd1 OK  Q
2*  ALL  Hd1  Q  OK  Q
2*  ALL  -Hd1 Q  OK  Q
2*  ALL  Q  H  OK  Q
2*  ALL  Q  -H  OK  Q
2*  ALL  H  Q  OK  Q
2*  ALL  -H  Q  OK  Q
2*  ALL  Q  Q  OK  Q
2*  ALL  S  0  i  Q
2*  ALL  S  -0  i  Q
2*  ALL  0  S  i  Q
2*  ALL  -0  S  i  Q
2*  ALL  S  1  i  Q
2*  ALL  S  -1  i  Q
2*  ALL  1  S  i  Q
2*  ALL  -1  S  i  Q
2*  ALL  Ed1  S  i  Q
2*  ALL  -Ed1 S  i  Q
2*  ALL  S  Ed1  i  Q
2*  ALL  S  -Ed1 i  Q
2*  ALL  S  0i1  i  Q
2*  ALL  S  -0i1  i  Q
2*  ALL  0i1  S  i  Q
2*  ALL  -0i1  S  i  Q
2*  ALL  S  Hd1  i  Q
2*  ALL  S  -Hd1 i  Q
2*  ALL  Hd1  S  i  Q
2*  ALL  -Hd1 S  i  Q
2*  ALL  S  H  i  Q
2*  ALL  S  -H  i  Q
2*  ALL  H  S  i  Q
2*  ALL  -H  S  i  Q
2*  ALL  Q  S  i  Q
2*  ALL  S  Q  i  Q
2*  ALL  S  S  i  Q
!
! Negate test vectors:
!
2~  ALL  1  0  OK  -1
2~  ALL  -1  0  OK  1
2~  ALL  Ed1  0  OK  -Ed1
2~  ALL  -Ed1  0  OK  Ed1
2~  ALL  0i1  0  OK  -0i1
2~  ALL  -0i1  0  OK  0i1
2~  ALL  Hm1  0  OK  -Hm1
2~  ALL  -Hm1  0  OK  Hm1
2~  ALL  Hd1  0  OK  -Hd1
2~  ALL  -Hd1  0  OK  Hd1
2~  ALL  H  0  OK  -H
2~  ALL  -H  0  OK  H
2~  ALL  0  0  OK  -0
2~  ALL  -0  0  OK  0
! NaNs -- FPTEST checks only that
! NaNs are produced and with no exceptions.
2~  ALL  -Q  0  OK  Q
2~  ALL  Q  0  OK  -Q
2~  ALL  -S  0  OK  S
2~  ALL  S  0  OK  -S
!
! Nextafter Test Vectors:
!
! From 1.
2N  ALL  1  2  OK  1i1
2N  ALL  1  0  OK  1d1
2N  ALL  1  -0  OK  1d1
2N  ALL  1  1i1  OK  1i1
2N  ALL  1  1d1  OK  1d1
2N  ALL  1  Hm1  OK  1i1
2N  ALL  1  Hd1  OK  1i1
2N  ALL  1  1  OK  1
2N  ALL  1  -Hd1  OK  1d1
2N  ALL  1  E  OK  1d1
2N  ALL  1  Ed1  OK  1d1
2N  ALL  1  0i1  OK  1d1
2N  ALL  1  -1  OK  1d1
2N  ALL  1  -H  OK  1d1
2N  ALL  1  H  OK  1i1
! From -1.
2N  ALL  -1  -2  OK  -1i1
2N  ALL  -1  0  OK  -1d1
2N  ALL  -1  -0  OK  -1d1
2N  ALL  -1  -1i1  OK  -1i1
2N  ALL  -1  -1d1  OK  -1d1
2N  ALL  -1  Hm1  OK  -1d1
2N  ALL  -1  Hd1  OK  -1d1
2N  ALL  -1  1  OK  -1d1
2N  ALL  -1  -Hd1  OK  -1i1
2N  ALL  -1  E  OK  -1d1
2N  ALL  -1  Ed1  OK  -1d1
2N  ALL  -1  0i1  OK  -1d1
2N  ALL  -1  -1  OK  -1
2N  ALL  -1  H  OK  -1d1
2N  ALL  -1  -H  OK  -1i1
! From 1 + 1ulp of 1.
2N  ALL  1i1  2  OK  1i2
2N  ALL  1i1  0  OK  1
2N  ALL  1i1  1i2  OK  1i2
2N  ALL  1i1  1  OK  1
2N  ALL  1i1  Hm1  OK  1i2
2N  ALL  1i1  Hd1  OK  1i2
2N  ALL  1i1  -1i1  OK  1
2N  ALL  1i1  -Hd1  OK  1
2N  ALL  1i1  E  OK  1
2N  ALL  1i1  Ed1  OK  1
2N  ALL  1i1  0i1  OK  1
2N  ALL  1i1  1i1  OK  1i1
2N  ALL  1i1  H  OK  1i2
2N  ALL  1i1  -H  OK  1
! From 1 - 1ulp- of 1.
2N  ALL  1d1  2  OK  1
2N  ALL  1d1  0  OK  1d2
2N  ALL  1d1  1  OK  1
2N  ALL  1d1  1d2  OK  1d2
2N  ALL  1d1  Hm1  OK  1
2N  ALL  1d1  Hd1  OK  1
2N  ALL  1d1  -1d1  OK  1d2
2N  ALL  1d1  -Hd1  OK  1d2
2N  ALL  1d1  E  OK  1d2
2N  ALL  1d1  Ed1  OK  1d2
2N  ALL  1d1  0i1  OK  1d2
2N  ALL  1d1  1d1  OK  1d1
2N  ALL  1d1  H  OK  1
2N  ALL  1d1  -H  OK  1d2
! From largest power of 2.
2N  ALL  Hm1  Hm2  OK  Hm1d1
2N  ALL  Hm1  0  OK  Hm1d1
2N  ALL  Hm1  Hm1d1  OK  Hm1d1
2N  ALL  Hm1  Hm1  OK  Hm1
2N  ALL  Hm1  Hd1  OK  Hm1i1
2N  ALL  Hm1  -Hm1  OK  Hm1d1
2N  ALL  Hm1  -Hd1  OK  Hm1d1
2N  ALL  Hm1  E  OK  Hm1d1
2N  ALL  Hm1  Ed1  OK  Hm1d1
2N  ALL  Hm1  0i1  OK  Hm1d1
2N  ALL  Hm1  H  OK  Hm1i1
2N  ALL  Hm1  -H  OK  Hm1d1
! From largest number.
2N  ALL  Hd1  Hm1  OK  Hd2  
2N  ALL  Hd1  0  OK  Hd2
2N  ALL  Hd1  -0  OK  Hd2
2N  ALL  Hd1  Hd2  OK  Hd2
2N  ALL  Hd1  Hd1  OK  Hd1
2N  ALL  Hd1  -Hd1  OK  Hd2  
2N  ALL  Hd1  E  OK  Hd2
2N  ALL  Hd1  Ed1  OK  Hd2
2N  ALL  Hd1  0i1  OK  Hd2
2N  ALL  Hd1  H  ox  H
2N  ALL  Hd1  -H  OK  Hd2
2N  ALL  -Hd1  -H  ox  -H
2N  ALL  -Hd1  H  OK  -Hd2
! From smallest normalized number.
2N  ALL  E  2  OK  Ei1
2N  ALL  E  0  xu  Ed1
2N  ALL  E  -0  xu  Ed1
2N  ALL  E  Ei1  OK  Ei1
2N  ALL  E  Ed1  xu  Ed1
2N  ALL  E  Hm1  OK  Ei1
2N  ALL  E  Hd1  OK  Ei1
2N  ALL  E  -E  xu  Ed1
2N  ALL  E  -Hd1  xu  Ed1
2N  ALL  E  E  OK  E  
2N  ALL  E  0i1  xu  Ed1
2N  ALL  E  H  OK  Ei1
2N  ALL  E  -H  xu  Ed1
! From largest denormalized number.
2N  ALL  Ed1  2  OK  E  
2N  ALL  Ed1  0  xu  Ed2
2N  ALL  Ed1  E  OK  E
2N  ALL  Ed1  Ed2  xu  Ed2
2N  ALL  Ed1  Hm1  OK  E
2N  ALL  Ed1  Hd1  OK  E
2N  ALL  Ed1  -Ed1  xu  Ed2
2N  ALL  Ed1  -Hd1  xu  Ed2
2N  ALL  Ed1  Ed1  OK  Ed1
2N  ALL  Ed1  0i1  xu  Ed2
2N  ALL  Ed1  H  OK  E
2N  ALL  Ed1  -H  xu  Ed2
2N  ALL  -Ed1  -2  OK  -E  
2N  ALL  -Ed1  -0  xu  -Ed2
2N  ALL  -Ed1  -E  OK  -E
2N  ALL  -Ed1  -Ed2  xu  -Ed2
2N  ALL  -Ed1  -Hm1  OK  -E
2N  ALL  -Ed1  -Hd1  OK  -E
2N  ALL  -Ed1  Ed1  xu  -Ed2
2N  ALL  -Ed1  Hd1  xu  -Ed2
2N  ALL  -Ed1  -Ed1  OK  -Ed1
2N  ALL  -Ed1  -0i1  xu  -Ed2
2N  ALL  -Ed1  -H  OK  -E
2N  ALL  -Ed1  H  xu  -Ed2
! From smallest denormalized number.
2N  ALL  0i1  2  xu  0i2
2N  ALL  0i1  0  xu  0
2N  ALL  0i1  0i2  xu  0i2
2N  ALL  0i1  Hm1  xu  0i2
2N  ALL  -0i1  -0  xu  -0
2N  ALL  -0i1  -0i2  xu  -0i2
2N  ALL  -0i1  -Hm1  xu  -0i2
2N  ALL  0i1  Hd1  xu  0i2
2N  ALL  0i1  0  xu  0
2N  ALL  0i1  -0  xu  0
2N  ALL  -0i1  -0  xu  -0
2N  ALL  -0i1  0  xu  -0
2N  ALL  0i1  -Hd1  xu  0
2N  ALL  0i1  E  xu  0i2
2N  ALL  0i1  Ed1  xu  0i2
2N  ALL  0i1  0i1  OK  0i1
2N  ALL  0i1  H  xu  0i2
2N  ALL  0i1  -H  xu  0
! From 0.
2N  ALL  0  2  xu  0i1
2N  ALL  0  0  OK  0
2N  ALL  0  -0  OK  0
2N  ALL  0  0i1  xu  0i1
2N  ALL  0  -0i1  xu  -0i1
2N  ALL  0  Hm1  xu  0i1
2N  ALL  0  Hd1  xu  0i1
2N  ALL  0  -Hd1  xu  -0i1
2N  ALL  0  E  xu  0i1
2N  ALL  0  Ed1  xu  0i1
2N  ALL  0  H  xu  0i1
2N  ALL  0  -H  xu  -0i1
! From -0.
2N  ALL  -0  2  xu  0i1
2N  ALL  -0  -0  OK  -0
2N  ALL  -0  0  OK  -0
2N  ALL  -0  0i1  xu  0i1
2N  ALL  -0  -0i1  xu  -0i1
2N  ALL  -0  Hm1  xu  0i1
2N  ALL  -0  Hd1  xu  0i1
2N  ALL  -0  -Hd1  xu  -0i1
2N  ALL  -0  E  xu  0i1
2N  ALL  -0  Ed1  xu  0i1
2N  ALL  -0  H  xu  0i1
2N  ALL  -0  -H  xu  -0i1
! From infinity.
2N  ALL  H  2  OK  Hd1
2N  ALL  H  0  OK  Hd1
2N  ALL  H  -0  OK  Hd1
2N  ALL  H  Hm1  OK  Hd1
2N  ALL  H  Hd1  OK  Hd1
2N  ALL  H  -Hd1  OK  Hd1
2N  ALL  H  E  OK  Hd1
2N  ALL  H  Ed1  OK  Hd1
2N  ALL  H  0i1  OK  Hd1
2N  ALL  H  H  OK  H
2N  ALL  H  -H  OK  Hd1
2N  ALL  -H  2  OK  -Hd1
2N  ALL  -H  0  OK  -Hd1
2N  ALL  -H  -0  OK  -Hd1
2N  ALL  -H  -Hm1  OK  -Hd1
2N  ALL  -H  -Hd1  OK  -Hd1
2N  ALL  -H  Hd1  OK  -Hd1
2N  ALL  -H  -E  OK  -Hd1
2N  ALL  -H  -Ed1  OK  -Hd1
2N  ALL  -H  -0i1  OK  -Hd1
2N  ALL  -H  H  OK  -Hd1
2N  ALL  -H  -H  OK  -H
! Next-afters.
2N  ALL  Q  0  OK  Q
2N  ALL  Q  -0  OK  Q
2N  ALL  0  Q  OK  Q
2N  ALL  -0  Q  OK  Q
2N  ALL  Q  1  OK  Q
2N  ALL  Q  -1  OK  Q
2N  ALL  1  Q  OK  Q
2N  ALL  -1  Q  OK  Q
2N  ALL  Ed1  Q  OK  Q
2N  ALL  -Ed1 Q  OK  Q
2N  ALL  Q  Ed1  OK  Q
2N  ALL  Q  -Ed1 OK  Q
2N  ALL  Q  0i1  OK  Q
2N  ALL  Q  -0i1  OK  Q
2N  ALL  0i1  Q  OK  Q
2N  ALL  -0i1  Q  OK  Q
2N  ALL  Q  Hd1  OK  Q
2N  ALL  Q  -Hd1 OK  Q
2N  ALL  Hd1  Q  OK  Q
2N  ALL  -Hd1 Q  OK  Q
2N  ALL  Q  H  OK  Q
2N  ALL  Q  -H  OK  Q
2N  ALL  H  Q  OK  Q
2N  ALL  -H  Q  OK  Q
2N  ALL  Q  Q  OK  Q
2N  ALL  S  0  i  Q
2N  ALL  S  -0  i  Q
2N  ALL  0  S  i  Q
2N  ALL  -0  S  i  Q
2N  ALL  S  1  i  Q
2N  ALL  S  -1  i  Q
2N  ALL  1  S  i  Q
2N  ALL  -1  S  i  Q
2N  ALL  Ed1  S  i  Q
2N  ALL  -Ed1 S  i  Q
2N  ALL  S  Ed1  i  Q
2N  ALL  S  -Ed1 i  Q
2N  ALL  S  0i1  i  Q
2N  ALL  S  -0i1  i  Q
2N  ALL  0i1  S  i  Q
2N  ALL  -0i1  S  i  Q
2N  ALL  S  Hd1  i  Q
2N  ALL  S  -Hd1 i  Q
2N  ALL  Hd1  S  i  Q
2N  ALL  -Hd1 S  i  Q
2N  ALL  S  H  i  Q
2N  ALL  S  -H  i  Q
2N  ALL  H  S  i  Q
2N  ALL  -H  S  i  Q
2N  ALL  Q  S  i  Q
2N  ALL  S  Q  i  Q
2N  ALL  S  S  i  Q
! Exact cases.
2I  ALL  1  0  OK  1
2I  ALL  Hd1  0  OK  Hd1
2I  ALL  -1  0  OK  -1
2I  ALL  -Hd1 0  OK  -Hd1
2I  ALL  9p9  0  OK  9p9
2I  ALL  -9p9  0  OK  -9p9
2I  ALL  0  0  OK  0
2I  ALL  -0  0  OK  -0
2I  ALL  Hm9  0  OK  Hm9
2I  ALL  Hm9d1  0  OK  Hm9d1
2I  ALL  Hm9d9  0  OK  Hm9d9
2I  ALL  Hm9d9d9 0  OK  Hm9d9d9
2I  ALL  -Hm9  0  OK  -Hm9
2I  ALL  -Hm9d1  0  OK  -Hm9d1
2I  ALL  -Hm9d9  0  OK  -Hm9d9
2I  ALL  -Hm9d9d9 0  OK  -Hm9d9d9
! Infinities.
2I  ALL  H  0  OK  H
2I  ALL  -H  0  OK  -H
! Inexact cases.
2I  =0<  1i1  0  x  1
2I  >  1i1  0  x  2
2I  =>  1d1  0  x  1
2I  0<  1d1  0  x  0
2I  =<  -1d1  0  x  -1
2I  0>  -1d1  0  x  -0
2I  =0>  -1i1  0  x  -1
2I  <  -1i1  0  x  -2
2I  >  E  0  x  1
2I  =0<  E  0  x  0
2I  <  -E  0  x  -1
2I  =0>  -E  0  x  -0
2I  >  Ed1  0  x  1
2I  =0<  Ed1  0  x  0
2I  <  -Ed1  0  x  -1
2I  =0>  -Ed1  0  x  -0
2I  =0<  0i1  0  x  0
2I  >  0i1  0  x  1
2I  =0>  -0i1  0  x  -0
2I  <  -0i1  0  x  -1
2I  >  8i1  0  x  9
2I  0=<  8i1  0  x  8
2I  <  -8i1  0  x  -9
2I  0=>  -8i1  0  x  -8
2I  =>  8d1  0  x  8
2I  0<  8d1  0  x  7
2I  =<  -8d1  0  x  -8
2I  0>  -8d1  0  x  -7
2I  =>  1p9d8 0  x  1p9
2I  =<  -1p9d8 0  x  -1p9
2I  =>  1p9p9d1 0  x  1p9p9
2I  =<  -1p9p9d1 0  x  -1p9p9
2I  =<0  1p9i8 0  x  1p9
2I  =>0  -1p9i8 0  x  -1p9
2I  =<0  1p9p9i1 0  x  1p9p9
2I  =>0  -1p9p9i1 0  x  -1p9p9
! Half-way cases.
2I  >  1m1  0  x  1
2I  =0<  1m1  0  x  0
2I  <  -1m1  0  x  -1
2I  =0>  -1m1  0  x  -0
2I  >=  3m1  0  x  2
2I  <0  3m1  0  x  1
2I  >0  -3m1  0  x  -1
2I  =<  -3m1  0  x  -2
2I  >  9m1  0  x  5
2I  =0<  9m1  0  x  4
2I  <  -9m1  0  x  -5
2I  =0>  -9m1  0  x  -4
2I  =  1m1i1  0  x  1
2I  =  -1m1i1  0  x  -1
2I  =  3m1d1  0  x  1
2I  =  -3m1d1  0  x  -1
2I  =  9m1i1 0  x  5
2I  =  -9m1i1 0  x  -5
! NAN operand.
2I  ALL  Q  0  OK  Q
2I  ALL  S  0  i  Q
! Scalb test vectors.  Those with
! 2nd arguments that overflow
! the integer format are commented
! out, since the response to
! floating->integer conversion on
! overflow is system-dependent
!
! Warm ups.
2S  ALL  1  1  OK  2
2S  ALL  -1  1  OK  -2
2S  ALL  1  -1  OK  1m1
2S  ALL  -1  -1  OK  -1m1
2S  ALL  1  3  OK  8
2S  ALL  1  -3  OK  1m3
2S  ALL  9  9  OK  9p9
2S  ALL  9  -9  OK  9m9
2S  ALL  7  8  OK  7p8
2S  ALL  -7  -8  OK  -7m8
2S  ALL  5  0  OK  5
2S  ALL  5  -0  OK  5
2S  ALL  -5  -0  OK  -5
! Big numbers.
2S  ALL  Hm1  -8  OK  Hm9
2S  ALL  Hm9  8  OK  Hm1
2S  ALL  Hd1  -9  OK  Hd1m9
2S  ALL  Hd1m9  9  OK  Hd1
2S  ALL  -Hd1  -9  OK  -Hd1m9
2S  ALL  -Hd1m9  9  OK  -Hd1
2S  ALL  Hd1  0  OK  Hd1
2S  ALL  Hd1  -0  OK  Hd1
! Overflows.
2S  >=  Hm1  1  xo  H
2S  <=  -Hm1  1  xo  -H
2S  s>=  1  1p7  xo  H
2S  s<=  -1  1p7  xo  -H
! 2S  >=  1  Hm9  xo  H
2S  ds>=  1  1p9p5  xo  H
! 2S  >=  1  Hd1  xo  H
2S  ds<=  -1  1p9p5  xo  -H
! 2S  <=  -1  Hd1  xo  -H
! 2S  >=  1m9  Hm9  xo  H
2S  >=  Hd1  1  xo  H
2S  >=  Hm9  9  xo  H
2S  ds>=  E  1p9p5  xo  H
2S  ds>=  Ed1  1p9p5  xo  H
2S  ds>=  0i1  1p9p5  xo  H
2S  ds<=  -0i1  1p9p5  xo  -H
! 2S  >=  E  Hm1  xo  H
! 2S  >=  Ed1  Hm1  xo  H
! 2S  >=  0i1  Hm1  xo  H
! 2S  <=  -0i1  Hm1  xo  -H
2S  <0  Hm1  1  xo  Hd1
2S  >0  -Hm1  1  xo  -Hd1
2S  s<0  1  1p7  xo  Hd1
2S  s>0  -1  1p7  xo  -Hd1
! 2S  <0  1  Hm9  xo  Hd1
2S  ds<0  1  1p9p5  xo  Hd1
! 2S  <0  1  Hd1  xo  Hd1
2S  ds>0  -1  1p9p5  xo  -Hd1
! 2S  >0  -1  Hd1  xo  -Hd1
! 2S  <0  1m9  Hm9  xo  Hd1
2S  <0  Hd1  1  xo  Hd1
2S  <0  Hm9  9  xo  Hd1
2S  ds<0  E  1p9p5  xo  Hd1
2S  ds<0  Ed1  1p9p5  xo  Hd1
2S  ds<0  0i1  1p9p5  xo  Hd1
2S  ds>0  -0i1  1p9p5  xo  -Hd1
! 2S  <0  E  Hm1  xo  Hd1
! 2S  <0  Ed1  Hm1  xo  Hd1
! 2S  <0  0i1  Hm1  xo  Hd1
! 2S  >0  -0i1  Hm1  xo  -Hd1
! Tiny operand.
2S  s  E  1p7  OK  4
2S  s  Ed1  1p7  OK  1d2p2
2S  s  -Ed1  1p7  OK  -1d2p2
2S  d  E  1p7p3  OK  4
2S  d  Ed1  1p7p3  OK  1d2p2
2S  d  -Ed1  1p7p3  OK  -1d2p2
2S  ALL  0i1  1  OK  0i2
2S  ALL  -0i1  1  OK  -0i2
2S  ALL  0i2  -1  OK  0i1
2S  ALL  0i1  3  OK  0i8
2S  ALL  0i8  -3  OK  0i1
2S  ALL  Ed1  1  OK  Ep1d2
2S  ALL  Ep1d2  -1  OK  Ed1
2S  ALL  Ed1  0  OK  Ed1
2S  ALL  Ed1  -0  OK  Ed1
! Underflows.
2S  <=0  0i1  -1  xu  0
2S  >  0i1  -1  xu  0i1
2S  >=0  -0i1  -1  xu  -0
2S  <  -0i1  -1  xu  -0i1
2S  <0  0i3  -2  xu  0
2S  =>  0i3  -2  xu  0i1
2S  <=0  0i9  -3  xu  0i1
2S  >  0i9  -3  xu  0i2
2S  =>  0i3  -1  xu  0i2
2S  0<  0i3  -1  xu  0i1
2S  >=  Ep1d1  -1  xu  E
2S  0<  Ep1d1  -1  xu  Ed1
2S  >=  Ep9d1  -9  xu  E
2S  0<  Ep9d1  -9  xu  Ed1
2S  <=0ds  1  -1p9p5  xu  0
2S  >ds  1  -1p9p5  xu  0i1
! 2S  <=0  1  -Hm1  xu  0
! 2S  >  1  -Hm1  xu  0i1
2S  <=  -Ep9d1  -9  xu  -E
2S  0>  -Ep9d1  -9  xu  -Ed1
2S  >=0ds  -1  -1p9p5  xu  -0
2S  <ds  -1  -1p9p5  xu  -0i1
2S  <=0ds  E  -1p9p5  xu  0
2S  >ds  E  -1p9p5  xu  0i1
2S  <=0ds  0i1  -1p9p5  xu  0
2S  >ds  0i1  -1p9p5  xu  0i1
2S  >=0ds  -0i1  -1p9p5  xu  -0
2S  <ds  -0i1  -1p9p5  xu  -0i1
! 2S  >=0  -1  -Hm1  xu  -0
! 2S  <  -1  -Hm1  xu  -0i1
! 2S  <=0  E  -Hm1  xu  0
! 2S  >  E  -Hm1  xu  0i1
! 2S  <=0  0i1  -Hd1  xu  0
! 2S  >  0i1  -Hd1  xu  0i1
! 2S  >=0  -0i1  -Hd1  xu  -0
! 2S  <  -0i1  -Hd1  xu  -0i1
! Infinity operands.
2S  ALL  H  0  OK  H
2S  ALL  H  -0  OK  H
2S  ALL  -H  0  OK  -H
2S  ALL  -H  -0  OK  -H
2S  ALL  H  1  OK  H
2S  ALL  H  1p9p5  OK  H
2S  ALL  H  -1p9p5  OK  H
2S  ALL  -H  1p9p5  OK  -H
2S  ALL  -H  -1p9p5  OK  -H
! 2S  ALL  H  Hd1  OK  H
! 2S  ALL  H  -Hd1  OK  H
! 2S  ALL  -H  Hd1  OK  -H
! 2S  ALL  -H  -Hd1  OK  -H
! 2S  ALL  1  H  OK  H
! 2S  ALL  Hd1  H  OK  H
! 2S  ALL  0i1  H  OK  H
! 2S  ALL  H  H  OK  H
! 2S  ALL  -H  H  OK  -H
! 2S  ALL  H  -H  i  Q 
! 2S  ALL  0  H  i  Q 
! Zeros.
2S  ALL  0  1  OK  0
2S  ALL  0  1p9p5  OK  0
2S  ALL  0  -1p9p5  OK  0
! 2S  ALL  0  Hd1  OK  0
! 2S  ALL  0  -Hd1  OK  0
2S  ALL  0  0  OK  0
2S  ALL  0  -0  OK  0
2S  ALL  -0  1  OK  -0
! 2S  ALL  -0  Hd1  OK  -0
! 2S  ALL  -0  -Hd1  OK  -0
2S  ALL  -0  -0  OK  -0
2S  ALL  -0  0  OK  -0
! NaNs.
2S  ALL  Q  1  OK  Q
2S  ALL  Q  1p9p5  OK  Q
2S  ALL  Q  -1p9p5  OK  Q
! 2S  ALL  Q  H  OK  Q
! 2S  ALL  Q  -Hd1  OK  Q
! 2S  ALL  Q  H  OK  Q
! 2S  ALL  Q  -Hd1  OK  Q
! 2S  ALL  Q  -H  OK  Q
! 2S  ALL  Q  Hd1  OK  Q
2S  ALL  Q  0  OK  Q
! 2S  ALL  Q  Q  OK  Q
! 2S  ALL  1  Q  OK  Q
! 2S  ALL  H  Q  OK  Q
! 2S  ALL  -H  Q  OK  Q
! 2S  ALL  0  Q  OK  Q
2S  ALL  S  1  i  Q
2S  ALL  S  1p9p5  i  Q
2S  ALL  S  -1p9p5  i  Q
2S  ALL  S  1p9p5  i  Q
2S  ALL  S  -1p9p5  i  Q
! 2S  ALL  S  H  i  Q
! 2S  ALL  S  -Hd1  i  Q
! 2S  ALL  S  -H  i  Q
! 2S  ALL  S  Hd1  i  Q
2S  ALL  S  0  i  Q
! 2S  ALL  S  S  i  Q
! 2S  ALL  Q  S  i  Q
! 2S  ALL  S  Q  i  Q
! 2S  ALL  1  S  i  Q
! 2S  ALL  H  S  i  Q
! 2S  ALL  -H  S  i  Q
! 2S  ALL  0  S  i  Q
! First a few trivial cases...
2V  ALL  1  0  OK  1
2V  ALL  4  0  OK  2
2V  ALL  9  0  OK  3
2V  ALL  1p8  0  OK  1p4
2V  ALL  1m8  0  OK  1m4
2V  ALL  4p6  0  OK  2p3
2V  ALL  4m6  0  OK  2m3
2V  ALL  9p8  0  OK  3p4
2V  ALL  9m8  0  OK  3m4
2V  ALL  9p9p9  0  OK  3p9
2V  ALL  9m9m9  0  OK  3m9
! And the usual zero business.
2V  ALL  +0  0  OK  +0
2V  ALL  -0  0  OK  -0
! And tests for infinity.
2V  ALL  +H  0  OK  +H
2V  ALL  -H  0  i  Q
! Case: 2^EVEN * (1 + Nulp+) -->
! 2^(EVEN/2) *
!  (1 + (1/2)Nulp+ -
!  (1/8)(Nulp+)^2 + tiny)
! 1 + 1ulp --> 1 + 0.5ulp - tiny.
2V  =0<  1i1  0  x  1
2V  >  1i1  0  x  1i1
! 1 + 2ulp --> 1 + 1ulp - tiny.
2V  =>  1i2  0  x  1i1
2V  0<  1i2  0  x  1
! 1 + 3ulp --> 1 + 1.5ulp - tiny.
2V  =0<  1i3  0  x  1i1
2V  >  1i3  0  x  1i2
! 1 + 4ulp --> 1 + 2ulp - tiny.
2V  =>  1i4  0  x  1i2
2V  0<  1i4  0  x  1i1
! (1 + 5ulp) --> 1 + 2.5ulp - ...
2V  =0<  1i5  0  x  1i2
2V  >  1i5  0  x  1i3
! (1 + 6ulp) --> 1 + 3ulp - ...
2V  =>  1i6  0  x  1i3
2V  0<  1i6  0  x  1i2
! (1+7ulp) --> 1 + 3.5ulp - ... 
2V  =0<  1i7  0  x  1i3
2V  >  1i7  0  x  1i4
! sqrt(1 - Nulp-) -->
! 1 - (1/2)Nulp- -
!  (1/8)(Nulp-)^2 - tiny
! 1 - 1ulp-  -->
! 1 - 0.5ulp- - tiny.
2V  =0<  1d1  0  x  1d1
2V  >  1d1  0  x  1
! 1 - 2ulp-  -->
! 1 - 1ulp- - tiny.
2V  =>  1d2  0  x  1d1
2V  0<  1d2  0  x  1d2
! 1 - 3ulp-  -->
! 1 - 1.5ulp- - tiny.
2V  =0<  1d3  0  x  1d2
2V  >  1d3  0  x  1d1
! 1 - 4ulp-  -->
! 1 - 2ulp- - tiny.
2V  =>  1d4  0  x  1d2
2V  0<  1d4  0  x  1d3
! 1 - 5ulp-  -->
! 1 - 2.5ulp- - tiny.
2V  =0<  1d5  0  x  1d3
2V  >  1d5  0  x  1d2
! 1 - 6ulp-  -->
! 1 - 3ulp- - tiny.
2V  =>  1d6  0  x  1d3
2V  0<  1d6  0  x  1d4
! 1 - 7ulp-  -->
! 1 - 3.5ulp- - tiny.
2V  =0<  1d7  0  x  1d4
2V  >  1d7  0  x  1d3
! 1 - 8ulp-  -->
! 1 - 4ulp- - tiny.
2V  =>  1d8  0  x  1d4
2V  0<  1d8  0  x  1d5
! 1 - 9ulp-  -->
! 1 - 4.5ulp- - tiny.
2V  =0<  1d9  0  x  1d5
2V  >  1d9  0  x  1d4
! Invalid negative cases.
2V  ALL  -1  0  i  Q
2V  ALL  -2i2  0  i  Q
2V  ALL  -3i4  0  i  Q
2V  ALL  -4d5  0  i  Q
2V  ALL  -1u1  0  i  Q
2V  ALL  -1u2  0  i  Q
2V  ALL  -1u3  0  i  Q
2V  ALL  -Hm1i2  0  i  Q
2V  ALL  -Hm2i2  0  i  Q
2V  ALL  -Hm1d1  0  i  Q
2V  ALL  -Hm2d4  0  i  Q
2V  ALL  -Ep1i1  0  i  Q
2V  ALL  -Ep1d3  0  i  Q
2V  ALL  -Ep1  0  i  Q
2V  ALL  -Ep1  0  i  Q
2V  ALL  -Ed4  0  i  Q
2V  ALL  -Ed3  0  i  Q
2V  ALL  -Ed2  0  i  Q
2V  ALL  -Ed1  0  i  Q
2V  ALL  -Ed4  0  i  Q
2V  ALL  -Ed3  0  i  Q
2V  ALL  -Ed7  0  i  Q
2V  ALL  -Ed9  0  i  Q
2V  ALL  -0i1  0  i  Q
2V  ALL  -0i1  0  i  Q
2V  ALL  -0i9  0  i  Q
2V  ALL  -0i7  0  i  Q
2V  ALL  -0i5  0  i  Q
2V  ALL  -0i2  0  i  Q
! NaN operand.
2V  ALL  Q  0  OK  Q
2V  ALL  S  0  i  Q
! First some easy integer cases.
2-  ALL  1  -1  OK  2
2-  ALL  1  -2  OK  3
2-  ALL  2  -1  OK  3
2-  ALL  2  -2  OK  4
2-  =0>  2  2  OK  0
2-  <  2  2  OK  -0
2-  =0>  5  5  OK  0
2-  <  5  5  OK  -0
2-  ALL  1  -7  OK  8
2-  ALL  5  1  OK  4
2-  ALL  2  5  OK  -3
2-  ALL  5  0  OK  5
2-  ALL  5  -0  OK  5
! Infinity vs Infinity.
2-  ALL  H  -H  OK  H  ok - affine sum
2-  ALL  -H  H  OK  -H
2-  ALL  -H  -H  i  Q  different signs
2-  ALL  H  H  i  Q
! Infinity vs huge.
2-  ALL  H  -Hm1  OK  H
2-  ALL  H  Hm1  OK  H
2-  ALL  -H  -Hm1  OK  -H
2-  ALL  -H  Hm1  OK  -H
2-  ALL  Hm1  -H  OK  H
2-  ALL  Hm1  H  OK  -H
2-  ALL  -Hm1  -H  OK  H
2-  ALL  -Hm1  H  OK  -H
! Infinity vs 0.
2-  ALL  H  -0  OK  H
2-  ALL  H  0  OK  H
2-  ALL  -H  -0  OK  -H
2-  ALL  -H  0  OK  -H
2-  ALL  0  -H  OK  H
2-  ALL  -0  -H  OK  H
2-  ALL  0  H  OK  -H
2-  ALL  -0  H  OK  -H
! Infinity vs denormalized.
2-  ALL  H  -Ed1  OK  H
2-  ALL  -H  -Ed1  OK  -H
2-  ALL  H  Ed1  OK  H
2-  ALL  -H  Ed1  OK  -H
2-  ALL  0i3  -H  OK  H
2-  ALL  0i3  H  OK  -H
2-  ALL  -0i3  -H  OK  H
2-  ALL  -0i3  H  OK  -H
! Zero vs finite -- watch that sign of
! 0 is meaningless.
2-  ALL  0  -Hm1  OK  Hm1
2-  ALL  -0  -Hm1  OK  Hm1
2-  ALL  -Hm1  -0  OK  -Hm1
2-  ALL  -Hm1  0  OK  -Hm1
2-  ALL  1  0  OK  1
2-  ALL  -1  0  OK  -1
2-  ALL  0  -1  OK  1
2-  ALL  -0  1  OK  -1
! Zero vs denormalized -- underflows.
2-  ALL  0  -Ed1  OK  Ed1
2-  ALL  -0  -Ed1  OK  Ed1
2-  ALL  0  Ed1  OK  -Ed1
2-  ALL  -0  Ed1  OK  -Ed1
2-  ALL  0i3  -0  OK  0i3
2-  ALL  0i3  0  OK  0i3
2-  ALL  -0i3  -0  OK  -0i3
2-  ALL  -0i3  0  OK  -0i3
! Zero vs tiny -- just in case.
2-  ALL  -0  E  OK  -E
2-  ALL  E  -0  OK  E
2-  ALL  0  E  OK  -E
2-  ALL  -E  -0  OK  -E
! Zero vs Zero -- watch signs and
! rounding modes.
2-  =0>  0  0  OK  0
2-  =0>  -0  -0  OK  0
2-  <  0  0  OK  -0
2-  <  -0  -0  OK  -0
2-  ALL  0  -0  OK  0
2-  ALL  -0  0  OK  -0
! Double a number -- may overflow so
! watch rounding mode.
2-  =>  Hm1  -Hm1  xo  H
2-  0<  Hm1  -Hm1  xo  Hd1
2-  =<  -Hm1  Hm1  xo  -H
2-  0>  -Hm1  Hm1  xo  -Hd1
2-  ALL  Hm1d2  -Hm1d2  OK  Hd2
2-  ALL  -Hm1d2  Hm1d2  OK  -Hd2
2-  =>  Hd2  -Hd2  xo  H
2-  0<  Hd2  -Hd2  xo  Hd1
2-  =<  -Hd2  Hd2  xo  -H
2-  0>  -Hd2  Hd2  xo  -Hd1
! Double an innocent number.
2-  ALL  1  -1  OK  2
2-  ALL  3  -3  OK  6
2-  ALL  E  -E  OK  Ep1
2-  ALL  Hm2  -Hm2  OK  Hm1
! Double a tiny number -- may underflow.
2-  ALL  Ed1  -Ed1  OK  Ep1d2
2-  ALL  -Ed1  Ed1  OK  -Ep1d2
2-  ALL  0i4  -0i4  OK  0i8
2-  ALL  -0i4  0i4  OK  -0i8
2-  ALL  0i1  -0i1  OK  0i2
2-  ALL  -0i1  0i1  OK  -0i2
! Cancellation to 0 -- to plus 0.
2-  =0>  Hm1  Hm1  OK  0
2-  =0>  -Hm1d2  -Hm1d2  OK  0
2-  =0>  1  1  OK  0
2-  =0>  -3  -3  OK  0
2-  =0>  E  E  OK  0
2-  =0>  -E  -E  OK  0
2-  =0>  Ed4  Ed4  OK  0
2-  =0>  -Ed1  -Ed1  OK  0  no underflow
2-  =0>  0i1  0i1  OK  0
2-  =0>  -0i1  -0i1  OK  0
2-  =0>  Hd1  Hd1 OK  0
! Cancellation to 0 -- to minus 0.
2-  <  Hm1  Hm1  OK  -0
2-  <  -Hm1d2  -Hm1d2  OK  -0
2-  <  1  1  OK  -0
2-  <  -3  -3  OK  -0
2-  <  E  E  OK  -0
2-  <  -E  -E  OK  -0
2-  <  Ed4  Ed4  OK  -0
2-  <  -Ed1  -Ed1  OK  -0  no underflow
2-  <  0i1  0i1  OK  -0
2-  <  -0i1  -0i1  OK  -0
2-  <  Hd1  Hd1 OK  -0
! Cancel forcing normalization of LSB
! (no rounding errors).  Difference is in
! last place of larger number.
! Medium numbers...
2-  ALL  1i1  1  OK  1u1
2-  ALL  -1i1  -1  OK  -1u1
2-  ALL  1i1  1i2  OK  -1u1
2-  ALL  -1i1  -1i2  OK  1u1
2-  ALL  2  2i1  OK  -2u1
2-  ALL  -2  -2i1  OK  2u1
2-  ALL  2i4  2i3  OK  2u1
2-  ALL  -2i4  -2i3  OK  -2u1
2-  ALL  4d1  4d2  OK  3u1
2-  ALL  -4d1  -4d2  OK  -3u1
2-  ALL  2d4  2d3  OK  -1u1
2-  ALL  -2d4  -2d3  OK  1u1
! Huge numbers...
2-  ALL  Hm1i1  Hm1  OK  Hm1u1
2-  ALL  -Hm1i1  -Hm1  OK  -Hm1u1
2-  ALL  Hm1i1  Hm1i2  OK  -Hm1u1
2-  ALL  -Hm1i1  -Hm1i2  OK  Hm1u1
2-  ALL  Hm2  Hm2i1  OK  -Hm2u1
2-  ALL  -Hm2  -Hm2i1  OK  Hm2u1
2-  ALL  Hm2i4  Hm2i3  OK  Hm2u1
2-  ALL  -Hm2i4  -Hm2i3  OK  -Hm2u1
2-  ALL  Hm2d1  Hm2d2  OK  Hm3u1
2-  ALL  -Hm2d1  -Hm2d2  OK  -Hm3u1
2-  ALL  -Hd2  -Hd1  OK  Hd1u1
2-  ALL  Hd2  Hd1  OK  -Hd1u1
! Tiny numbers...
2-  ALL  -Ei1  -E  OK  -Eu1
2-  ALL  Ei1  E  OK  Eu1
2-  ALL  -Ed1  -E  OK  Eu1
2-  ALL  Ed1  E  OK  -Eu1
2-  ALL  Ei1  Ei2  OK  -Eu1
2-  ALL  -Ei1  -Ei2  OK  Eu1
2-  ALL  Ed1  Ed2  OK  Eu1
2-  ALL  -Ed1  -Ed2  OK  -Eu1
2-  ALL  Ed3  Ed2  OK  -Eu1
2-  ALL  -Ed3  -Ed2  OK  Eu1
2-  ALL  0i2  0i1  OK  Eu1
2-  ALL  -0i2  -0i1  OK  -Eu1
2-  ALL  0i3  0i2  OK  Eu1
2-  ALL  -0i3  -0i2  OK  -Eu1
! Normalize from round bit -- set up tests
! so that operands have
! exponents differing by 1 unit.
! Medium numbers...
2-  ALL  2  2d1  OK  1u1
2-  ALL  -2  -2d1  OK  -1u1
2-  ALL  -2d1  -2  OK  1u1
2-  ALL  2d1  2  OK  -1u1
2-  ALL  4i1  4d1  OK  3u3
2-  ALL  -4i1  -4d1  OK  -3u3
2-  ALL  4d1  4i2  OK  -3u5
2-  ALL  -4d1  -4i2  OK  3u5
2-  ALL  2i1  1i1  OK  1i1
2-  ALL  -2i1  -1i1  OK  -1i1
2-  ALL  2i2  1i1  OK  1i3
2-  ALL  -2i2  -1i1  OK  -1i3
2-  ALL  2i2  1i3  OK  1i1
2-  ALL  -2i2  -1i3  OK  -1i1
! Huge numbers...
2-  ALL  Hm2  Hm2d1  OK  Hm3u1
2-  ALL  -Hm2  -Hm2d1  OK  -Hm3u1
2-  ALL  -Hm1d1  -Hm1  OK  Hm2u1
2-  ALL  Hm1d1  Hm1  OK  -Hm2u1
2-  ALL  Hm4i1  Hm4d1  OK  Hm5u3
2-  ALL  -Hm4i1  -Hm4d1  OK  -Hm5u3
2-  ALL  Hm2d1  Hm2i2  OK  -Hm3u5
2-  ALL  -Hm2d1  -Hm2i2  OK  Hm3u5
2-  ALL  Hm2i1  Hm1i1  OK  -Hm2i1
2-  ALL  -Hm2i1  -Hm1i1  OK  Hm2i1
2-  ALL  Hm1i2  Hm2i1  OK  Hm2i3
2-  ALL  -Hm1i2  -Hm2i1  OK  -Hm2i3
2-  ALL  Hm2i2  Hm3i3  OK  Hm3i1
2-  ALL  -Hm2i2  -Hm3i3  OK  -Hm3i1
! Tiny numbers...
2-  ALL  Ep1  Ep1d1  OK  Eu1
2-  ALL  -Ep1  -Ep1d1  OK  -Eu1
2-  ALL  -Ep1d1  -Ep1  OK  Eu1
2-  ALL  Ep1d1  Ep1  OK  -Eu1
2-  ALL  Ep1i1  Ep1d1  OK  Eu3
2-  ALL  -Ep1i1  -Ep1d1  OK  -Eu3
2-  ALL  Ep2  Ep2d1  OK  Eu2
2-  ALL  -Ep2  -Ep2d1  OK  -Eu2
2-  ALL  -Ep2d1  -Ep2  OK  Eu2
2-  ALL  Ep2d1  Ep2  OK  -Eu2
2-  ALL  Ep2i1  Ep2d1  OK  Eu6
2-  ALL  -Ep2i1  -Ep2d1  OK  -Eu6
2-  ALL  Ep1d1  Ep1i2  OK  -Eu5
2-  ALL  -Ep1d1  -Ep1i2  OK  Eu5
2-  ALL  Ep1d1  Ep1i4  OK  -Eu9
2-  ALL  -Ep1d1  -Ep1i4  OK  Eu9
2-  ALL  Ep1i1  Ei1  OK  Ei1
2-  ALL  -Ep1i1  -Ei1  OK  -Ei1
2-  ALL  Ep1i2  Ei1  OK  Ei3
2-  ALL  -Ep1i2  -Ei1  OK  -Ei3
2-  ALL  Ep2i2  Ep1i3  OK  Ep1i1
2-  ALL  -Ep2i2  -Ep1i3  OK  -Ep1i1
! Add magnitude:
! cases where one operand is off in sticky --
! rounding perhaps to an overflow.
! Huge vs medium.
2-  =0<  Hm1  -1  x  Hm1
2-  >  Hm1  -1  x  Hm1i1
2-  =0>  -Hm1  1  x  -Hm1
2-  <  -Hm1  1  x  -Hm1i1
2-  =0<  Hm1d1  -1  x  Hm1d1
2-  >  Hm1d1  -1  x  Hm1
2-  =0>  -Hm1d1  1  x  -Hm1d1
2-  <  -Hm1d1  1  x  -Hm1
2-  =0<  Hd1  -1  x  Hd1
2-  >  Hd1  -1  xo  H  signal overflow
2-  =0>  -Hd1  1  x  -Hd1
2-  <  -Hd1  1  xo  -H
2-  =0<  Hd2  -1  x  Hd2
2-  >  Hd2  -1  x  Hd1
2-  =0>  -Hd2  1  x  -Hd2
2-  <  -Hd2  1  x  -Hd1
! Huge vs denormal.
2-  =0<  0i1  -Hm1  x  Hm1
2-  >  0i1  -Hm1  x  Hm1i1
2-  =0>  -0i1  Hm1  x  -Hm1
2-  <  -0i1  Hm1  x  -Hm1i1
2-  =0<  0i1  -Hm1d1  x  Hm1d1
2-  >  0i1  -Hm1d1  x  Hm1
2-  =0>  -0i1  Hm1d1  x  -Hm1d1
2-  <  -0i1  Hm1d1  x  -Hm1
2-  =0<  0i1  -Hd1  x  Hd1
2-  >  0i1  -Hd1  xo  H  signal overflow
2-  =0>  -0i1  Hd1  x  -Hd1
2-  <  -0i1  Hd1  xo  -H
2-  =0<  0i1  -Hd2  x  Hd2
2-  >  0i1  -Hd2  x  Hd1
2-  =0>  -0i1  Hd2  x  -Hd2
2-  <  -0i1  Hd2  x  -Hd1
! Medium vs denormal.
2-  =0<  0i1  -1  x  1
2-  >  0i1  -1  x  1i1
2-  =0>  -0i1  1  x  -1
2-  <  -0i1  1  x  -1i1
2-  =0<  0i1  -1d1  x  1d1
2-  >  0i1  -1d1  x  1
2-  =0>  -0i1  1d1  x  -1d1
2-  <  -0i1  1d1  x  -1
2-  =0<  0i1  -2d1  x  2d1
2-  >  0i1  -2d1  x  2
2-  =0>  -0i1  2d1  x  -2d1
2-  <  -0i1  2d1  x  -2
2-  =0<  0i1  -2d2  x  2d2
2-  >  0i1  -2d2  x  2d1
2-  =0>  -0i1  2d2  x  -2d2
2-  <  -0i1  2d2  x  -2d1
!
! Magnitude subtract when an operand
! is in the sticky bit.  The interesting
! cases will arise when directed rounding
! forces a nonzero cancellation.
! Huge and medium.
2-  =>  Hm1  1  x  Hm1
2-  0<  Hm1  1  x  Hm1d1
2-  =<  -Hm1  -1  x  -Hm1
2-  0>  -Hm1  -1  x  -Hm1d1
2-  =>  Hm1d1  1  x  Hm1d1
2-  0<  Hm1d1  1  x  Hm1d2
2-  =<  -Hm1d1  -1  x  -Hm1d1
2-  0>  -Hm1d1  -1  x  -Hm1d2
2-  =>  Hd1  1  x  Hd1
2-  0<  Hd1  1  x  Hd2
2-  =<  -Hd1  -1  x  -Hd1
2-  0>  -Hd1  -1  x  -Hd2
2-  =>  Hd2  1  x  Hd2
2-  0<  Hd2  1  x  Hd3
2-  =<  -Hd2  -1  x  -Hd2
2-  0>  -Hd2  -1  x  -Hd3
! Huge and tiny.
2-  =>  Hd1  0i1  x  Hd1
2-  0<  Hd1  0i1  x  Hd2
2-  =<  -Hd1  -0i1  x  -Hd1
2-  0>  -Hd1  -0i1  x  -Hd2
2-  =>  -0i3  -Hm1  x  Hm1
2-  0<  -0i3  -Hm1  x  Hm1d1
2-  =<  0i3  Hm1  x  -Hm1
2-  0>  0i3  Hm1  x  -Hm1d1
! Medium and tiny.
2-  =>  1d1  0i1  x  1d1
2-  0<  1d1  0i1  x  1d2
2-  =<  -2d1  -0i1  x  -2d1
2-  0>  -2d1  -0i1  x  -2d2
2-  =>  -0i3  -3  x  3
2-  0<  -0i3  -3  x  3d1
2-  =<  0i3  5  x  -5
2-  0>  0i3  5  x  -5d1
! Add magnitude with difference in LSB so,
! except for denorms, round bit is crucial.
! Half-way cases arise.
! Medium cases.
2-  =0<  1i1  -1  x  2
2-  >  1i1  -1  x  2i1
2-  =0>  -1i1  1  x  -2
2-  <  -1i1  1  x  -2i1
2-  =0>  -2  2i1  x  -4
2-  <  -2  2i1  x  -4i1
2-  =0<  2  -2i1  x  4
2-  >  2  -2i1  x  4i1
2-  =>  1  -1i3  x  2i2
2-  0<  1  -1i3  x  2i1
2-  =<  -1  1i3  x  -2i2
2-  0>  -1  1i3  x  -2i1
2-  =<  -2i1  2i2  x  -4i2
2-  0>  -2i1  2i2  x  -4i1
2-  =>  2i1  -2i2  x  4i2
2-  0<  2i1  -2i2  x  4i1
! Huge cases.
2-  =>  Hd2  -Hd1  xo  H
2-  0<  Hd2  -Hd1  xo  Hd1
2-  =<  -Hd2  Hd1  xo  -H
2-  0>  -Hd2  Hd1  xo  -Hd1
2-  =>  Hm1d1  -Hm1  xo  H
2-  0<  Hm1d1  -Hm1  x  Hd1
2-  =<  -Hm1d1  Hm1  xo  -H
2-  0>  -Hm1d1  Hm1  x  -Hd1
2-  =>  Hm1i1  -Hm1  xo  H
2-  0<  Hm1i1  -Hm1  xo  Hd1
2-  =<  -Hm1i1  Hm1  xo  -H
2-  0>  -Hm1i1  Hm1  xo  -Hd1
2-  =0<  Hm2i1  -Hm2  x  Hm1
2-  >  Hm2i1  -Hm2  x  Hm1i1
2-  =0>  -Hm2i1  Hm2  x  -Hm1
2-  <  -Hm2i1  Hm2  x  -Hm1i1
2-  =0<  Hm1d2  -Hm1d1  x  Hd2
2-  >  Hm1d2  -Hm1d1  x  Hd1
2-  =0>  -Hm1d2  Hm1d1  x  -Hd2
2-  <  -Hm1d2  Hm1d1  x  -Hd1
! Check rounding.
2-  >  2  -1u1  x  2i1
2-  =0<  2  -1u1  x  2
2-  =>  2i1  -1u1  x  2i2
2-  0<  2i1  -1u1  x  2i1
2-  =>  4d1  -1u1  x  4
2-  0<  4d1  -1u1  x  4d1
2-  >  4d1  -1u1d1 x  4
2-  0=<  4d1  -1u1d1 x  4d1
2-  =<  -4d1  1u1  x  -4
2-  0>  -4d1  1u1  x  -4d1
2-  <  -4d1  1u1d1 x  -4
2-  0=>  -4d1  1u1d1 x  -4d1
! NaN operands.
2-  ALL  Q  0  OK  Q
2-  ALL  Q  -0  OK  Q
2-  ALL  0  Q  OK  Q
2-  ALL  -0  Q  OK  Q
2-  ALL  Q  1  OK  Q
2-  ALL  Q  -1  OK  Q
2-  ALL  1  Q  OK  Q
2-  ALL  -1  Q  OK  Q
2-  ALL  Ed1  Q  OK  Q
2-  ALL  -Ed1 Q  OK  Q
2-  ALL  Q  Ed1  OK  Q
2-  ALL  Q  -Ed1 OK  Q
2-  ALL  Q  0i1  OK  Q
2-  ALL  Q  -0i1  OK  Q
2-  ALL  0i1  Q  OK  Q
2-  ALL  -0i1  Q  OK  Q
2-  ALL  Q  Hd1  OK  Q
2-  ALL  Q  -Hd1 OK  Q
2-  ALL  Hd1  Q  OK  Q
2-  ALL  -Hd1 Q  OK  Q
2-  ALL  Q  H  OK  Q
2-  ALL  Q  -H  OK  Q
2-  ALL  H  Q  OK  Q
2-  ALL  -H  Q  OK  Q
2-  ALL  Q  Q  OK  Q
2-  ALL  S  0  i  Q
2-  ALL  S  -0  i  Q
2-  ALL  0  S  i  Q
2-  ALL  -0  S  i  Q
2-  ALL  S  1  i  Q
2-  ALL  S  -1  i  Q
2-  ALL  1  S  i  Q
2-  ALL  -1  S  i  Q
2-  ALL  Ed1  S  i  Q
2-  ALL  -Ed1 S  i  Q
2-  ALL  S  Ed1  i  Q
2-  ALL  S  -Ed1 i  Q
2-  ALL  S  0i1  i  Q
2-  ALL  S  -0i1  i  Q
2-  ALL  0i1  S  i  Q
2-  ALL  -0i1  S  i  Q
2-  ALL  S  Hd1  i  Q
2-  ALL  S  -Hd1 i  Q
2-  ALL  Hd1  S  i  Q
2-  ALL  -Hd1 S  i  Q
2-  ALL  S  H  i  Q
2-  ALL  S  -H  i  Q
2-  ALL  H  S  i  Q
2-  ALL  -H  S  i  Q
2-  ALL  Q  S  i  Q
2-  ALL  S  Q  i  Q
2-  ALL  S  S  i  Q
! Middle-range numbers.
2%  ALL  1  2  OK  1
2%  ALL  1  -2  OK  1
2%  ALL  -1  2  OK  -1
2%  ALL  -1  -2  OK  -1
2%  ALL  3  2  OK  -1
2%  ALL  3  -2  OK  -1
2%  ALL  -3  2  OK  1
2%  ALL  -3  -2  OK  1
2%  ALL  2  2  OK  0
2%  ALL  2  -2  OK  0
2%  ALL  -2  2  OK  -0
2%  ALL  -2  -2  OK  -0
2%  ALL  1i1  2  OK  -1d2
2%  ALL  3d1  2  OK  1d4
2%  ALL  1  4  OK  1
2%  ALL  2  4  OK  2
2%  ALL  3  4  OK  -1
2%  ALL  4  4  OK  0
2%  ALL  5  4  OK  1
2%  ALL  6  4  OK  -2
2%  ALL  7  4  OK  -1
2%  ALL  8  4  OK  0
2%  ALL  0  1m1  OK  0
2%  ALL  1m3  1m1  OK  1m3
2%  ALL  3m3  1m1  OK  -1m3
2%  ALL  5m3  1m1  OK  1m3
! Step across jump.
2%  ALL  2i1  4  OK  -2d2
2%  ALL  2i1  -4  OK  -2d2
2%  ALL  -2i1  4  OK  2d2
2%  ALL  -2i1  -4  OK  2d2
2%  ALL  2i8  4  OK  -2d8d8
2%  ALL  6d1  4  OK  2d4
2%  ALL  6d1  -4  OK  2d4
2%  ALL  -6d1  4  OK  -2d4
2%  ALL  -6d1  -4  OK  -2d4
2%  ALL  6d8  4  OK  2d8d8d8d8
2%  ALL  1m2  1m1  OK  1m2
2%  ALL  1i1m2 1m1 OK  -1d2m2
! (1+x)/(1+y), x,y<<1.
2%  ALL  1i1  1i5  OK  -1u4
2%  ALL  1i1  -1i5  OK  -1u4
2%  ALL  -1i1  1i5  OK  1u4
2%  ALL  -1i1  -1i5  OK  1u4
2%  ALL  1i2  1i5  OK  -1u3
2%  ALL  1i3  1i5  OK  -1u2
2%  ALL  1i4  1i5  OK  -1u1
2%  ALL  1i6  1i5  OK  1u1
2%  ALL  3d1  3  OK  -3u1
2%  ALL  3d1  -3  OK  -3u1
2%  ALL  -3d1  3  OK  3u1
2%  ALL  -3d1  -3  OK  3u1
2%  ALL  2d1  2  OK  -1u1
2%  ALL  1i1  1d2  OK  1u2
2%  ALL  1  1d2  OK  1u1
2%  ALL  1d4  1d2  OK  -1u1
2%  ALL  1d1  2d1  OK  1d1
2%  ALL  1  2d1  OK  -1d2
! Large numbers.
2%  ALL  Hm1i1  Hm1d2  OK  Hm1u2
2%  ALL  Hm1  Hm1d2  OK  Hm1u1
2%  ALL  Hm1d4  Hm1d2  OK  -Hm1u1
2%  ALL  Hm1d1  Hd1  OK  Hm1d1
2%  ALL  Hm1  Hd1  OK  -Hm1d2
2%  ALL  Hm2  Hm1  OK  Hm2
2%  ALL  Hd1  Hd2  OK  Hd1u1
2%  ALL  Hd1  -Hd2 OK  Hd1u1
2%  ALL  -Hd1 Hd2  OK  -Hd1u1
2%  ALL  -Hd1 -Hd2 OK  -Hd1u1
2%  ALL  Hm1u1  Hm1u4  OK  Hm1u1
2%  ALL  Hd1  Hm1  OK  -Hm1u1
2%  ALL  Hm1i3  Hm1i5  OK  -Hm1u2
2%  ALL  Hm1i4  Hm1i5  OK  -Hm1u1
2%  ALL  Hm1i6  Hm1i5  OK  Hm1u1
! Large and small numbers.
2%  ALL  Hd1  0i1  OK  0
2%  ALL  Hd1  -0i1  OK  0
2%  ALL  -Hd1 0i1  OK  -0
2%  ALL  -Hd1 -0i1  OK  -0
2%  ALL  Hd1  Eu1  OK  0
2%  ALL  Hd1  Ep1d1  OK  0
2%  ALL  Hd1  E  OK  0
2%  ALL  Hm1d1  Hm1  OK  -Hm2u1
2%  ALL  Hm1d1  -Hm1  OK  -Hm2u1
2%  ALL  -Hm1d1 Hm1  OK  Hm2u1
2%  ALL  -Hm1d1 -Hm1  OK  Hm2u1
! Small numbers.
2%  ALL  0i1  0i4  OK  0i1
2%  ALL  0i1  -0i4  OK  0i1
2%  ALL  -0i1  0i4  OK  -0i1
2%  ALL  -0i1  -0i4  OK  -0i1
2%  ALL  0i2  0i4  OK  0i2
2%  ALL  0i3  0i4  OK  -0i1
2%  ALL  0i3  -0i4  OK  -0i1
2%  ALL  -0i3  0i4  OK  0i1
2%  ALL  -0i3  -0i4  OK  0i1
2%  ALL  0i4  0i4  OK  0
2%  ALL  0i4  -0i4  OK  0
2%  ALL  -0i4  -0i4  OK  -0
2%  ALL  -0i4  0i4  OK  -0
2%  ALL  Ep9d1  Ep8  OK  -Ep8u1
2%  ALL  Ei1  Ed2  OK  Eu3
2%  ALL  E  Ed2  OK  Eu2
2%  ALL  Ed4  Ed2  OK  -Eu2
2%  ALL  Ed4  -Ed2  OK  -Eu2
2%  ALL  -Ed4  Ed2  OK  Eu2
2%  ALL  -Ed4  -Ed2  OK  Eu2
2%  ALL  Ed1  Ep1d1  OK  Ed1
2%  ALL  E  Ep1d1  OK  -Ed1
2%  ALL  Ei3  Ei5  OK  -Eu2
2%  ALL  Ei4  Ei5  OK  -Eu1
2%  ALL  Ei6  Ei5  OK  Eu1
2%  ALL  Ep1d1  Ep1  OK  -Eu1
! Special case: invalid operations
! delivering NaNs.
2%  ALL  0  0  i  Q
2%  ALL  0  -0  i  Q
2%  ALL  -0  0  i  Q
2%  ALL  -0  -0  i  Q
2%  ALL  1  0  i  Q
2%  ALL  1d1  0  i  Q
2%  ALL  Hd1  0  i  Q
2%  ALL  Hd1  -0  i  Q
2%  ALL  -Hd1  0  i  Q
2%  ALL  -Hd1  -0  i  Q
2%  ALL  Ed1  0  i  Q
2%  ALL  Ed1  -0  i  Q
2%  ALL  -Ed1  0  i  Q
2%  ALL  -Ed1  -0  i  Q
2%  ALL  0i1  0  i  Q
2%  ALL  H  0  i  Q
2%  ALL  H  -0  i  Q
2%  ALL  -H  0  i  Q
2%  ALL  -H  -0  i  Q
2%  ALL  H  1  i  Q
2%  ALL  H  Hd1  i  Q
2%  ALL  H  -Hd1  i  Q
2%  ALL  -H  Hd1  i  Q
2%  ALL  -H  -Hd1  i  Q
2%  ALL  H  Ed1  i  Q
2%  ALL  H  0i1  i  Q
2%  ALL  H  H  i  Q
! 0 rem y = 0,  y a number <> 0.
2%  ALL  0  1  OK  0
2%  ALL  0  -1  OK  0
2%  ALL  -0  1  OK  -0
2%  ALL  -0  -1  OK  -0
2%  ALL  0  1d1  OK  0
2%  ALL  0  Hd1  OK  0
2%  ALL  0  Ed1  OK  0
2%  ALL  0  0i1  OK  0
2%  ALL  0  -0i1  OK  0
2%  ALL  -0  0i1  OK  -0
2%  ALL  -0  -0i1  OK  -0
2%  ALL  0  H  OK  0
2%  ALL  0  -H  OK  0
! x rem INF = x,  x a number <> 0.
2%  ALL  1  H  OK  1
2%  ALL  1  -H  OK  1
2%  ALL  -1  H  OK  -1
2%  ALL  -1  -H  OK  -1
2%  ALL  1d1  H  OK  1d1
2%  ALL  Hd1  H  OK  Hd1
2%  ALL  Hd1  -H  OK  Hd1
2%  ALL  -Hd1  H  OK  -Hd1
2%  ALL  -Hd1  -H  OK  -Hd1
2%  ALL  Ed1  H  OK  Ed1
2%  ALL  0i1  H  OK  0i1
2%  ALL  0i1  -H  OK  0i1
2%  ALL  -0i1  H  OK  -0i1
2%  ALL  -0i1  -H  OK  -0i1
! Vectors based on
! (x + 1) | (x^n + 1) for n odd -
! for significands with even
! numbers of bits.
2%  s  Hm1i1  Hm1u3  OK  0
2%  s  Hm1i2  Hm1u3  OK  Hm1u1
2%  s  Hm1i3  Hm1u3  OK  -Hm1u1
2%  s  Hm1i1  3  OK  0
2%  s  Hm1i1  0i3  OK  0
2%  s  Hm1  Hm1u3  OK  -Hm1u1
2%  s  Hm1d2  Hm1u3  OK  Hm1u1
2%  s  Ei1  Eu3  OK  0
2%  s  E  Eu3  OK  -0i1
2%  s  Ed1  Eu3  OK  0i1
2%  s  Ei1  0i3  OK  0
2%  s  Ei2  Eu3  OK  Eu1
2%  s  Ei3  Eu3  OK  -Eu1
2%  s  Hm1i1  -Hm1u3  OK  0
2%  s  Hm1i2  -Hm1u3  OK  Hm1u1
2%  s  Hm1i3  -Hm1u3  OK  -Hm1u1
2%  s  Hm1i1  -3  OK  0
2%  s  Hm1i1  -0i3  OK  0
2%  s  Hm1  -Hm1u3  OK  -Hm1u1
2%  s  Hm1d2  -Hm1u3  OK  Hm1u1
2%  s  Ei1  -0i3  OK  0
2%  s  E  -Eu3  OK  -Eu1
2%  s  Ed1  -Eu3  OK  Eu1
2%  s  Ei1  -Eu3 OK  0
2%  s  Ei2  -Eu3  OK  Eu1
2%  s  Ei3  -Eu3  OK  -Eu1
2%  s  -Hm1i1  Hm1u3  OK  -0
2%  s  -Hm1i2  Hm1u3  OK  -Hm1u1
2%  s  -Hm1i3  Hm1u3  OK  Hm1u1
2%  s  -Hm1i1  3  OK  -0
2%  s  -Hm1i1  0i3  OK  -0
2%  s  -Hm1  Hm1u3  OK  Hm1u1
2%  s  -Hm1d2  Hm1u3  OK  -Hm1u1
2%  s  -Ei1  0i3  OK  -0
2%  s  -E  Eu3  OK  Eu1
2%  s  -Ed1  Eu3  OK  -Eu1
2%  s  -Ei1  Eu3  OK  -0
2%  s  -Ei2  Eu3  OK  -Eu1
2%  s  -Ei3  Eu3  OK  Eu1
2%  s  -Hm1i1  -Hm1u3  OK  -0
2%  s  -Hm1i2  -Hm1u3  OK  -Hm1u1
2%  s  -Hm1i3  -Hm1u3  OK  Hm1u1
2%  s  -Hm1i1  -3  OK  -0
2%  s  -Hm1i1  -0i3  OK  -0
2%  s  -Hm1  -Hm1u3  OK  Hm1u1
2%  s  -Hm1d2  -Hm1u3  OK  -Hm1u1
2%  s  -Ei1  -0i3  OK  -0
2%  s  -E  -Eu3  OK  Eu1
2%  s  -Ed1  -Eu3  OK  -Eu1
2%  s  -Ei1  -Eu3 OK  -0
2%  s  -Ei2  -Eu3  OK  -Eu1
2%  s  -Ei3  -Eu3  OK  Eu1
! Vectors based on
! (x + 1) | (x^n + 1) for n odd;
! for significands with
! odd numbers of bits.
2%  d  Hm1d2  Hm1u3  OK  0
2%  d  Hm1i3  Hm1u3  OK  Hm1u1
2%  d  Hm1i4  Hm1u3  OK  -Hm1u1
2%  d  Hm1i2  3  OK  0
2%  d  Hm1i2  0i3  OK  0
2%  d  Hm1d4  Hm1u3  OK  -Hm1u1
2%  d  Hm1  Hm1u3  OK  Hm1u1
2%  d  Ed1  Eu3  OK  0
2%  d  Ei1  Eu3  OK  -0i1
2%  d  E  Eu3  OK  0i1
2%  d  Ei2  0i3  OK  0
2%  d  Ei3  Eu3  OK  Eu1
2%  d  Ei4  Eu3  OK  -Eu1
2%  d  Hm1d2  -Hm1u3  OK  0
2%  d  Hm1i3  -Hm1u3  OK  Hm1u1
2%  d  Hm1i4  -Hm1u3  OK  -Hm1u1
2%  d  Hm1i2  -3  OK  0
2%  d  Hm1i2  -0i3  OK  0
2%  d  Hm1d4  -Hm1u3  OK  -Hm1u1
2%  d  Hm1  -Hm1u3  OK  Hm1u1
2%  d  Ed1  -0i3  OK  0
2%  d  Ei1  -Eu3  OK  -Eu1
2%  d  E  -Eu3  OK  Eu1
2%  d  Ei2  -Eu3 OK  0
2%  d  Ei3  -Eu3  OK  Eu1
2%  d  Ei4  -Eu3  OK  -Eu1
2%  d  -Hm1d2  Hm1u3  OK  -0
2%  d  -Hm1i3  Hm1u3  OK  -Hm1u1
2%  d  -Hm1i4  Hm1u3  OK  Hm1u1
2%  d  -Hm1i2  3  OK  -0
2%  d  -Hm1i2  0i3  OK  -0
2%  d  -Hm1d4  Hm1u3  OK  Hm1u1
2%  d  -Hm1  Hm1u3  OK  -Hm1u1
2%  d  -Ed1  0i3  OK  -0
2%  d  -Ei1  Eu3  OK  Eu1
2%  d  -E  Eu3  OK  -Eu1
2%  d  -Ei2  Eu3  OK  -0
2%  d  -Ei3  Eu3  OK  -Eu1
2%  d  -Ei4  Eu3  OK  Eu1
2%  d  -Hm1d2  -Hm1u3  OK  -0
2%  d  -Hm1i3  -Hm1u3  OK  -Hm1u1
2%  d  -Hm1i4  -Hm1u3  OK  Hm1u1
2%  d  -Hm1i2  -3  OK  -0
2%  d  -Hm1i2  -0i3  OK  -0
2%  d  -Hm1d4  -Hm1u3  OK  Hm1u1
2%  d  -Hm1  -Hm1u3  OK  -Hm1u1
2%  d  -Ei2  -0i3  OK  -0
2%  d  -Ei1  -Eu3  OK  Eu1
2%  d  -E  -Eu3  OK  -Eu1
2%  d  -Ei2  -Eu3 OK  -0
2%  d  -Ei3  -Eu3  OK  -Eu1
2%  d  -Ei4  -Eu3  OK  Eu1
! NaN operands.
2%  ALL  Q  0  OK  Q
2%  ALL  Q  -0  OK  Q
2%  ALL  0  Q  OK  Q
2%  ALL  -0  Q  OK  Q
2%  ALL  Q  1  OK  Q
2%  ALL  Q  -1  OK  Q
2%  ALL  1  Q  OK  Q
2%  ALL  -1  Q  OK  Q
2%  ALL  Ed1  Q  OK  Q
2%  ALL  -Ed1 Q  OK  Q
2%  ALL  Q  Ed1  OK  Q
2%  ALL  Q  -Ed1 OK  Q
2%  ALL  Q  0i1  OK  Q
2%  ALL  Q  -0i1  OK  Q
2%  ALL  0i1  Q  OK  Q
2%  ALL  -0i1  Q  OK  Q
2%  ALL  Q  Hd1  OK  Q
2%  ALL  Q  -Hd1 OK  Q
2%  ALL  Hd1  Q  OK  Q
2%  ALL  -Hd1 Q  OK  Q
2%  ALL  Q  H  OK  Q
2%  ALL  Q  -H  OK  Q
2%  ALL  H  Q  OK  Q
2%  ALL  -H  Q  OK  Q
2%  ALL  Q  Q  OK  Q
2%  ALL  S  0  i  Q
2%  ALL  S  -0  i  Q
2%  ALL  0  S  i  Q
2%  ALL  -0  S  i  Q
2%  ALL  S  1  i  Q
2%  ALL  S  -1  i  Q
2%  ALL  1  S  i  Q
2%  ALL  -1  S  i  Q
2%  ALL  Ed1  S  i  Q
2%  ALL  -Ed1 S  i  Q
2%  ALL  S  Ed1  i  Q
2%  ALL  S  -Ed1 i  Q
2%  ALL  S  0i1  i  Q
2%  ALL  S  -0i1  i  Q
2%  ALL  0i1  S  i  Q
2%  ALL  -0i1  S  i  Q
2%  ALL  S  Hd1  i  Q
2%  ALL  S  -Hd1 i  Q
2%  ALL  Hd1  S  i  Q
2%  ALL  -Hd1 S  i  Q
2%  ALL  S  H  i  Q
2%  ALL  S  -H  i  Q
2%  ALL  H  S  i  Q
2%  ALL  -H  S  i  Q
2%  ALL  Q  S  i  Q
2%  ALL  S  Q  i  Q
2%  ALL  S  S  i  Q
